myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

Java Chat Programm OHNE Server

Willkommen

myGully

Links

Forum

 
Antwort
 
Themen-Optionen Ansicht
Ungelesen 27.04.11, 14:08   #1
counterfighter3
Anfänger
 
Registriert seit: Jul 2010
Beiträge: 3
Bedankt: 0
counterfighter3 ist noch neu hier! | 0 Respekt Punkte
Standard Java Chat Programm OHNE Server

Hallo zusammen,

ich habe mir vorgenommen einen Java Chat zu programmieren. Habe mich bisher immer ein wenig vor dem programmieren gescheut, will mich aber mal ran wagen um mein Wissen dahingehend zu erweitern.

Ich habe schon des öfteren in C programmiert und in Java, jedoch nur so Kleinigkeiten aus der Schule. Auch habe ich schon eine Menge gelesen über Sockets und Server CLient Betrieb. Ich finde das ist für die spätere Anwendung zu kompliziert.

Ich würde gerne ein Chat programm schreiben welches automatisch über LAN arbeitet ohne eine Server und eine Client Seite zu haben.

Habt Ihr villeicht ein paar Ratschläge?

Danke im Voraus
counterfighter3 ist offline   Mit Zitat antworten
Ungelesen 27.04.11, 15:10   #2
Xalir
Erfahrener Newbie
 
Registriert seit: Mar 2009
Beiträge: 154
Bedankt: 56
Xalir ist noch neu hier! | 0 Respekt Punkte
Standard

Du scheinst falsche Vorstellungen von Netzwerkprogrammierung zu haben. Beim Austausch von Daten gibt es immer mindestens einen Sender(der Client) und einen Empfänger(der Server). Ein Chatprogramm ist typischerweise beides, der sowohl Daten empfängt als auch Daten sendet.
Xalir ist offline   Mit Zitat antworten
Ungelesen 27.04.11, 18:07   #3
testerws
Newbie
 
Registriert seit: Apr 2009
Beiträge: 78
Bedankt: 21
testerws ist noch neu hier! | 0 Respekt Punkte
Standard

hä? wie soll das gehen? ich habe bisher nur ein chat in c# (winform) geschrieben, aber wie soll ein chat ohne client UND server aussehen? bin für neue wege/ideen immer offen
testerws ist offline   Mit Zitat antworten
Ungelesen 28.04.11, 11:53   #4
PornoFan
Anfänger
 
Registriert seit: Apr 2011
Beiträge: 17
Bedankt: 7
PornoFan ist noch neu hier! | 0 Respekt Punkte
Standard

Ohne Server?

Dann solltet ihr eventuell Briefe austauschen...
__________________
Gut ist, wenn man in seinem Leben mehr Wichserinnen als Wichser kennengelernt hat!
PornoFan ist offline   Mit Zitat antworten
Ungelesen 28.04.11, 17:06   #5
germgerm
bla
 
Registriert seit: Mar 2010
Beiträge: 312
Bedankt: 302
germgerm ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von counterfighter3 Beitrag anzeigen
Ich würde gerne ein Chat programm schreiben welches automatisch über LAN arbeitet ohne eine Server und eine Client Seite zu haben.
Du könntest ein Netzlaufwerk x: einrichten und dann mit deiner Form mit dem Send-Button ein File x:\chat-username.txt schreiben.
Und zyklisch alle anderen Files einlesen und mergen.
germgerm ist offline   Mit Zitat antworten
Ungelesen 28.04.11, 19:01   #6
PornoFan
Anfänger
 
Registriert seit: Apr 2011
Beiträge: 17
Bedankt: 7
PornoFan ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von germgerm Beitrag anzeigen
Du könntest ein Netzlaufwerk x: einrichten und dann mit deiner Form mit dem Send-Button ein File x:\chat-username.txt schreiben.
Und zyklisch alle anderen Files einlesen und mergen.
Und das Netzlaufwerk existiert einfach so ohne Server?
Ist ja interessant...
__________________
Gut ist, wenn man in seinem Leben mehr Wichserinnen als Wichser kennengelernt hat!
PornoFan ist offline   Mit Zitat antworten
Ungelesen 11.05.11, 17:16   #7
Pennywise1911
Anfänger
 
Registriert seit: Aug 2008
Beiträge: 11
Bedankt: 1
Pennywise1911 ist noch neu hier! | 0 Respekt Punkte
Standard

Ich glaube er meint, dass er keine Hardware als Server abstellen will. Die einzige Möglichkeit ist, dass du in deiner Anwendung 2 Klassen hast. Einmal Server und einmal Client. Der Typ, der Verbinden möchte, ist also der Client und fragt beim Server nach, ob man Verbinden darf. Wenn der User das mit "Ja" beantwortet, wird der Server in dieser Applikation gestartet. Somit hast du das Client/Server-Modell in einer Applikation unter gebracht.
Pennywise1911 ist offline   Mit Zitat antworten
Ungelesen 11.05.11, 22:15   #8
sirleo
is poking \\Device\\Beep
 
Registriert seit: May 2011
Beiträge: 201
Bedankt: 84
sirleo ist noch neu hier! | 0 Respekt Punkte
Standard

@Threadersteller:
Wenn du keinen Server hast hast du auch keinen Client, denn der Client ist per definition ein Programm welches Dienste von einem Server in Anspruch nimmt.

Du hast hier im Grunde 2 Möglichkeiten:
1. Du gibst die IP des PC's per Hand ein, Vor allem clever wenn in dem Lan statische IP's vergeben werden.
2. Du sendest deine Nachricht als Broadcast an alle PC's.

Andere möglichkeiten hast du nicht, denn sonst können sich die Chatprogramme ja nicht finden.
In den früheren Zeiten von ICQ, sendeten die Clients auch immer direkt zueinander,heute machen sie es nur ncoh bei Dateitransfers,damals waren die Server auch nur zum finden der Clienten.
Das man das nun alles zentralisiert hat hat verschiedene Gründe.

btw, wiso soll kein Server vorhanden sein, hat das bestimmte Gründe oder so aus Prinzip?
so long
sirleo ist offline   Mit Zitat antworten
Ungelesen 11.05.11, 23:12   #9
das_kindlein_schreit
Newbie
 
Registriert seit: Mar 2011
Beiträge: 62
Bedankt: 12
das_kindlein_schreit ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von sirleo Beitrag anzeigen
Andere möglichkeiten hast du nicht, denn sonst können sich die Chatprogramme ja nicht finden.
Wieder mal grober Schwachsinn - Broadcasts wären zwar eine gute Idee, sind aber keineswegs notwendig. Eine Kenntnis über alle verbundenen Clients im LAN kriegt man auch so - das ist auch implizit in der Technologie drin, auch wenn die physischen Signaländerungen am Switch nicht unbedingt weitergegeben werden. Man muss im Grunde entweder einen Portscan durchführen (das geht völlig legitim und kontrolliert) oder einfach auf vordefinierte Ports zugreifen - ob TCP oder UDP ist in einem normalen LAN egal, Paketverluste treten eh kaum auf (man sollte aber trotzdem Checksummen mitübertragen wenn es UDP sein soll, auch das geht praktisch Overhead-frei). Wenn es denn komplett ohne serverartige Algorithmen gehen soll dann nutzt man einfach nen Hub statt einem Switch (nicht unbedingt eine tolle Lösung ...) - oder man stellt auf Token Ring um, da bekommt man auch erstmal alle Pakete

Wie bereits angedeutet muss man einfach nur an beiden Seiten einen Port permanent abhören und ggf. antworten - schon hat man das, was man durchaus auch als serverfreie Kommunikation bezeichnen kann denn keine zentrale Instanz regelt mehr als einen einzigen Datenfluss.
das_kindlein_schreit ist offline   Mit Zitat antworten
Ungelesen 12.05.11, 01:30   #10
Xalir
Erfahrener Newbie
 
Registriert seit: Mar 2009
Beiträge: 154
Bedankt: 56
Xalir ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von sirleo Beitrag anzeigen
@Threadersteller:
Wenn du keinen Server hast hast du auch keinen Client, denn der Client ist per definition ein Programm welches Dienste von einem Server in Anspruch nimmt.
Die Definition ist zwar richtig, die Schlußfolgerung aber falsch. Ein Client kann auch ohne Server existieren, aber ohne einen Server nicht ordnungsgemäß arbeiten.

Zitat:
1. Du gibst die IP des PC's per Hand ein, Vor allem clever wenn in dem Lan statische IP's vergeben werden.
2. Du sendest deine Nachricht als Broadcast an alle PC's.
Zu 1. Anstatt einer IP-Adresse ist der Hostname weitaus flexibler und zudem auch für den Benutzer einfacher.
Es gibt noch die Möglichkeit über Multicast (dies nutzt zum Beispiel IRC)

Zitat:
Man muss im Grunde entweder einen Portscan durchführen (das geht völlig legitim und kontrolliert) oder einfach auf vordefinierte Ports zugreifen
Ein Portscan ist für ein Chatprogramm völlig überflüssig, egal ob man sich für eine Implementierung von dynamischen oder festen Ports entscheidet. Für die Suche ist Broadcast der effektivste Weg.

Zitat:
Paketverluste treten eh kaum auf (man sollte aber trotzdem Checksummen mitübertragen wenn es UDP sein soll, auch das geht praktisch Overhead-frei)
Irrtum, TCP und UDP senden beide Checksummen, der Unterschied ist ganz woanders. Und für textbasierende Chats bedient man sich immer TCP, ohne Wenn und Aber. Ansonsten sollte man nochmal anfangen, die Grundlagen von Netzwerkkommunikation zu lernen.
Xalir ist offline   Mit Zitat antworten
Ungelesen 12.05.11, 10:23   #11
sirleo
is poking \\Device\\Beep
 
Registriert seit: May 2011
Beiträge: 201
Bedankt: 84
sirleo ist noch neu hier! | 0 Respekt Punkte
Standard

Hi!
Ja Mutlicast wäre Stilsicherer.
Mein Gedanke dahinter war aber das ich die Nachricht ins Broadcastpacket packe und die Programme dann nach Broadcastpacketen suchen lasse.
Die PC-Namen hab ich jetzt total vergessen .
mfg

P:s.:sei doch nicht so pedantisch was meine Schlussfolgerung angeht
sirleo ist offline   Mit Zitat antworten
Ungelesen 11.05.11, 23:33   #12
sirleo
is poking \\Device\\Beep
 
Registriert seit: May 2011
Beiträge: 201
Bedankt: 84
sirleo ist noch neu hier! | 0 Respekt Punkte
Standard

Nein ehrlich, währ ich nicht drauf gekommen, Server und Client reden ja auch so miteinander.

Was ich meinte war:
Du musst ja erstmal deinen Chatpartner finden, oder halt ein Megafon nehmen udn es in die Welt hinausbrüllen.

Und von wegen Grober schwachsinn:
Ich will mal sehen wie du bei dir zu hause einen Token Ring aufbaust, dann doch eher einen EthernetTokenRing, und dann muss man ja noch einiges beim Aufbau eines Tokenringes beachten.
Deine Vorschläge sind so unpraktisch das die wirklich grob schwachverfugt sind mein lieber.
und was soll das gedöns mit der Signaländerung am Switch?
Natürlich wird diese weitergegeben, und auch bei einem Broadcast, sonst funktioniert ja gar nichts.
Und von wegen TCP oder UDP, macht schon unterschied, bei UDP musst nähmlich ggf die Payload nochmal selbst wieder zusammenbauen.
Und von wegen Checksum selbst mitübertragen.
Hier lies mal bevor du geistig einen Abseilst [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
Und ein Portscan ist schon knorke ehrlich:
Man will ja auch jedes mal einen Scan durchführen bevor man ein bisl chattet, zumal einige Clients im LAN ja auch Firewalls haben.
Aber du erstaunst mich schon trotzdem:
Ich bewundere wie du morgens aufstehst und es schaffst den tag zu überleben.
*kopfschüttel*
sirleo ist offline   Mit Zitat antworten
Ungelesen 12.05.11, 13:03   #13
das_kindlein_schreit
Newbie
 
Registriert seit: Mar 2011
Beiträge: 62
Bedankt: 12
das_kindlein_schreit ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von sirleo Beitrag anzeigen
Und von wegen Grober schwachsinn:
Ich will mal sehen wie du bei dir zu hause einen Token Ring aufbaust
Schön.

Zitat:
Zitat von sirleo Beitrag anzeigen
Deine Vorschläge sind so unpraktisch das die wirklich grob schwachverfugt sind mein lieber.
Ich bin nicht "dein lieber", Kindchen.

Zitat:
Zitat von sirleo Beitrag anzeigen
und was soll das gedöns mit der Signaländerung am Switch?
Das fragste am besten mal deinen Lehrer, der erklärt dir dann u.A. auch was ein Stromkreis ist und was das mit nem Netzwerk zu tun hat.

Zitat:
Zitat von sirleo Beitrag anzeigen
Natürlich wird diese weitergegeben, und auch bei einem Broadcast, sonst funktioniert ja gar nichts.
Und danach fragste ihn was ein Hub, ein Switch ist und wie er funktioniert, hast offensichtlich noch sehr, sehr viel zu Lernen.

Zitat:
Zitat von sirleo Beitrag anzeigen
Und von wegen TCP oder UDP, macht schon unterschied, bei UDP musst nähmlich ggf die Payload nochmal selbst wieder zusammenbauen.
Danach : Netzwerkprotokolle, eventuell auch grundlegende Begrifflichkeiten wie "Payload" deren Bedeutung du noch nicht kennst.

Zitat:
Zitat von sirleo Beitrag anzeigen
Aber du erstaunst mich schon trotzdem:
Ich bewundere wie du morgens aufstehst und es schaffst den tag zu überleben.
*kopfschüttel*
Schön, Teil2.

Zitat:
Irrtum, TCP und UDP senden beide Checksummen
königlich blamiert. Tip, bevor du loslegst : lies den Wiki-Artikel ganz genau
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
das_kindlein_schreit ist offline   Mit Zitat antworten
Ungelesen 12.05.11, 17:18   #14
Xalir
Erfahrener Newbie
 
Registriert seit: Mar 2009
Beiträge: 154
Bedankt: 56
Xalir ist noch neu hier! | 0 Respekt Punkte
Standard

Ein wenig dünnhäutig, der Kleine. Aber wen wunderts, hat doch jemand es tatsächlich gewagt, ihn seinen geistigen Dünnschiss vor die Nase zu führen. Keine Sorge, ich schick' Deine Mama heute Abend mal etwas eher heim, damit sie Dir noch eine Gute-Nacht-Geschichte vorlesen kann und Du beruhigt einschlafen und den grausamen Tag vergessen kannst.

Bis dahin quäle Dich mit der Tatsache, dass Du nur sehr geringes Wissen über Netzwerke und deren Protokolle hast.
Xalir ist offline   Mit Zitat antworten
Ungelesen 12.05.11, 18:49   #15
das_kindlein_schreit
Newbie
 
Registriert seit: Mar 2011
Beiträge: 62
Bedankt: 12
das_kindlein_schreit ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von Xalir Beitrag anzeigen
Ein wenig dünnhäutig, der Kleine. Aber wen wunderts, hat doch jemand es tatsächlich gewagt, ihn seinen geistigen Dünnschiss vor die Nase zu führen. Keine Sorge, ich schick' Deine Mama heute Abend mal etwas eher heim, damit sie Dir noch eine Gute-Nacht-Geschichte vorlesen kann und Du beruhigt einschlafen und den grausamen Tag vergessen kannst.

Bis dahin quäle Dich mit der Tatsache, dass Du nur sehr geringes Wissen über Netzwerke und deren Protokolle hast.

Merkst garnicht wie sehr du dich blamierst, oder? Entweder kopierst du nur noch 1:1 mein Verhalten und meine Worte oder du demonstrierst dein Alter. Aktuell : Kopieren bis der Arzt kommt. Lass einfach gut sein, du hast dich hier im Forum nun schon mehrfach lächerlich gemacht - mach es ned noch schlimmer, schon die Tatsache dass du bei jeder Blamage nur noch angreifst und keine Argumente bringst bestätigt das; is doch völlig in Ordnung wenn du was nicht weisst.

Zitat:
is dahin quäle Dich mit der Tatsache, dass Du nur sehr geringes Wissen über Netzwerke und deren Protokolle hast.
Jo dann quäl mal ... bist ja auch ein "Quäler".
das_kindlein_schreit ist offline   Mit Zitat antworten
Ungelesen 12.05.11, 19:39   #16
Xalir
Erfahrener Newbie
 
Registriert seit: Mar 2009
Beiträge: 154
Bedankt: 56
Xalir ist noch neu hier! | 0 Respekt Punkte
Standard

Schließe ncht von Dir selbst auf andere.
Xalir ist offline   Mit Zitat antworten
Ungelesen 12.05.11, 12:27   #17
Twaddler
Coder
 
Registriert seit: May 2011
Beiträge: 43
Bedankt: 2
Twaddler ist noch neu hier! | 0 Respekt Punkte
Standard

Ich glaube eher, dass der Threadstarter sich erstmal etwas grundlegender mit dem Thema Java auseinandersetzen sollte bevor er so etwas nur versucht. Außerdem sollten er und einige andere Leute sich mal überlegen, wie ein Chat funktioniert und wie man den Server weglassen soll.

[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]

Der Hauptfehler ist anscheinend das Verständniss eines Servers als ausschließlich externe Hardware.

LG
Twaddler ist offline   Mit Zitat antworten
Ungelesen 12.05.11, 17:38   #18
Pennywise1911
Anfänger
 
Registriert seit: Aug 2008
Beiträge: 11
Bedankt: 1
Pennywise1911 ist noch neu hier! | 0 Respekt Punkte
Standard

Ist euch vielleicht mal in den Sinn gekommen, dass ich recht habe und er sich einfach nur falsch ausgedrückt hat? Bonjour ist BTW sowas wie ein "automatisches finden". Alle Clients schreien rum und finden sich dann. Kann man sicher auch in Java benutzen.
Pennywise1911 ist offline   Mit Zitat antworten
Ungelesen 12.05.11, 20:08   #19
ckjthedogmaster
Chuck Norris sein Vater
 
Benutzerbild von ckjthedogmaster
 
Registriert seit: Aug 2009
Beiträge: 5.167
Bedankt: 3.131
ckjthedogmaster leckt gerne myGully Deckel in der Kanalisation! | 5087298 Respekt Punkteckjthedogmaster leckt gerne myGully Deckel in der Kanalisation! | 5087298 Respekt Punkteckjthedogmaster leckt gerne myGully Deckel in der Kanalisation! | 5087298 Respekt Punkteckjthedogmaster leckt gerne myGully Deckel in der Kanalisation! | 5087298 Respekt Punkteckjthedogmaster leckt gerne myGully Deckel in der Kanalisation! | 5087298 Respekt Punkteckjthedogmaster leckt gerne myGully Deckel in der Kanalisation! | 5087298 Respekt Punkteckjthedogmaster leckt gerne myGully Deckel in der Kanalisation! | 5087298 Respekt Punkteckjthedogmaster leckt gerne myGully Deckel in der Kanalisation! | 5087298 Respekt Punkteckjthedogmaster leckt gerne myGully Deckel in der Kanalisation! | 5087298 Respekt Punkteckjthedogmaster leckt gerne myGully Deckel in der Kanalisation! | 5087298 Respekt Punkteckjthedogmaster leckt gerne myGully Deckel in der Kanalisation! | 5087298 Respekt Punkte
Standard

Vllt. solltet ihr beide das per Pm klären. Das Beleidigen bringt euch beiden rein garnichts, ausser vllt. das ihr mal in Urlaub geht.
Denkt mal drüber nach... Ausserdem ein Klick und das Rumgepöbel wird gelöscht.

Mfg
ckjthedogmaster ist offline   Mit Zitat antworten
Ungelesen 13.05.11, 14:24   #20
das_kindlein_schreit
Newbie
 
Registriert seit: Mar 2011
Beiträge: 62
Bedankt: 12
das_kindlein_schreit ist noch neu hier! | 0 Respekt Punkte
Standard

na dann klick mal. Scheint dir ja sehr wichtig zu sein.
das_kindlein_schreit ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:17 Uhr.


Sitemap

().