Wie programmiert man einen Chat am besten?
-
naja wie kommen die anderen ohne die Weiterleitung an die Daten?
Damit ein Applet zu einem Server connecten kann, muss es doch dem Benutzer so eine Frage stellen, ob er es erlauben will, oder?
Gruß,
Kevin
-
In ICQ gehen die Nachrichten auch nicht über den Server. Der teilt nur allen Teilnehmern die IP von den anderen mit.
-
Dann hab ich da aber nen Denkfehler....wenn da jemand eine Router hat bringt die IP ansich doch gar nichts! Oder wie können die dann Nachrichten austauschen? Server aufmachen kann der mit Router dann schonmal garnicht...und nur eine IP reicht dann wohl nicht, oder?
-
Doch, muß halt Ports forwarden.
-
Jo, aber geht doch nur, wenn es der Benutzer an seinem Router selbst vornimmt...aber wenn er dazu nicht in der Lage ist meine ich Was bringt dann der reine Austausch der IP-Adressen?
-
Was willst du denn anderes machen? Die LAN-Adresse kannst ja schlecht austauschen, weil die dem Rechner in Uganda, der selber ein LAN hat, genausowenig was bringt.
Dafür ist schon der Router-Besitzer verantwortlich.
Sobald dein Client zum Server connected weiß der Server auf jeden Fall die IP des Routers, das ist auch das einzige, was Sinn macht, den anderen Clients mitzuteilen.
-
HI!
Ja ich habe dann die IP des Routers, aber ich kann mich dann nicht zu irgendeinem Port verbinden, über den die Nachrichten gehen, wenn der nicht forwarded ist...und ohne, dass er dann einen Server aufmacht (der mit dem Router), kann ich MEINES WISSENS nach keine Nachrichten einfach hinschicken, deshalb dachte ich an einen unabhängigen Server als Weiterleitung!
Gruß,
Kevin
-
Ich hab dir nur gesagt, dass es ICQ so macht. Ob es gut oder schlecht ist, sei dahingestellt, ich habe das nicht beurteilt.
Wenn du nicht gerade auch 90384759783645 User hast, kann das der Server schon auch übernehmen.
-
Dann erklär mir mal ICQs Prinzip bitte
User1 und User2 sitzen hinterm Router, haben beide die IP des anderen Routers. Toll, was nun? Keiner von beiden kann einen Port für eine Chatsession öffnen, weil beides Hausfrauen sind, die keine Ports forwarden können
Trotzdem kommt eine Chatverbindung zu Stande...nur wie?
-
Ich hab leider kein ICQ installiert (bin ja nicht lebensmüde), deshalb könnte ich jetzt nur mutmaßen. Ports unter 1024 sind bei vielen Routern standardmäßig z.B. nicht gesperrt. Derjenige, der den Chat anfängt, hat sowieso keine Probleme, nur der, der angelabert wird.
Aber ich kann das jetzt nur raten, ich selber benutz nur nen Jabber-Client, der dann zum Jabber-Netzwerk verbindet und dem Jabber-Server sagt, er soll sich für mich zum ICQ verbinden. Irgendwie noch komplizierter, aber funktioniert auch.
-
Ok, dann bastel ich das mit der Weiterleitung
-
Hi,
also ich hab mal nen Java-Chat programmiert. Das Prinzip ist simpel:
Einen Server der mittels einens ServerSockets an einem Port "lauscht", einen Client (ich hab ein Applet gewählt) der eine Verbindungs-Klasse instanziert. Diese Klasse meldet den Client mittels eines ServerSockets beim Server an. Der Server reiht den Client in einen Vector ein und leitet dann eben alle Nachrichten die er bekommt an die Clients weiter. ganz ganz simpel.
Auf Kaffee & Kuchen (java.seite.net/) ist das Grundgerüst dazu, das hab ich auch verwendet und dann ausgebaut. Ist echt gut das tutorial.Mfg
GPC
-
Vielen Dank! Finde aber das Chattutorial irgendwie nicht *fg*
-
Optimizer schrieb:
Ports unter 1024 sind bei vielen Routern standardmäßig z.B. nicht gesperrt.
Wow, wie leichtsinnig. ...dabei sind das doch gerade die kritischen Ports.
-
-
Danke
-
Gregor schrieb:
Optimizer schrieb:
Ports unter 1024 sind bei vielen Routern standardmäßig z.B. nicht gesperrt.
Wow, wie leichtsinnig. ...dabei sind das doch gerade die kritischen Ports.
Für die ist das Betriebssystem zuständig. Dank Windows kann also gar nichts passieren.
Überlegt mal was ohne diese Ports alles nicht gehen würde... gar nichts.
-
Warum werden denn die dadrüber gesperrt?
-
Weil die nicht für bestimmte Funktionen reserviert sind. Es gibt irgendwelche Konventionen, dass z.B. 21 für ftp oder telnet oder sonstwas verwendet werden sollte, für die ab 1024 gibt es keine Festlegung mehr.
Des is jetzt aber nicht zwangsläufig bei allen Routern genau bis 1024, auf jeden Fall kannst du wohl davon ausgehen, dass ICQ für Nachrichten einen gebräuchlichen Port verwendet.
-
Optimizer schrieb:
Ports unter 1024 sind bei vielen Routern standardmäßig z.B. nicht gesperrt.
Quatsch.
Die "Sperrung" kommt ja nur zustande, weil entsprechende Ports eben _nicht_ forwardet werden.
Wohin sollte der Router die Ports denn schicken? An alle? Alle Rechner == DMZ??
Nö.
Und WAS würde denn ohne PFW alles nicht gehen?!? Ja was denn?
Die Windows-Netzwerkfreigabe. Geht auch nicht, mein Kumpel in Taihiti kann nicht auf meine Freigaben zugreifen.
Mein HTTP und FTP Server auf Port 80 bezw. 21. Geht auch nicht. Ohne PFW kann er nicht darauf zugreifen.
Nein, RPC-Hacks a la Blaster und MyDoom kommen auch nicht durch. *schweißwegwisch*
Remote auf meinen X-Server kommt auch keiner von "draussen".Optimizer schrieb:
In ICQ gehen die Nachrichten auch nicht über den Server. Der teilt nur allen Teilnehmern die IP von den anderen mit.
Doch. Die Chat-Nachrichten gehen AFAIK über den Server.
Diese werden ja auch zwischengespeichert falls der andere Offline ist.
Nur File-Transfers etc. gehen nicht über den Server (und funzen ohne PFW auch nicht).Dasselbe bei IRC: Chatten kann jeder (es sei denn man braucht 'nen Ident und hat 113 nicht gePFW. - Ach vergessen, Router leiten den für gewöhnlich ja sowieso weiter :p ) - nur DCC (Direct Client to Client) Verbindungen (file transfers und "private chats") gehen _NICHT_ über den IRC-Server (und funzen ohne PFW ebenfalls nicht).
Dasselbe bei edonkey und Co.: Connecten kann ich mich eigentlich immer - nur wenn meine Ports nicht offen sind, wird mir kaum einer was senden können