Autor Beitrag
Travis
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48



BeitragVerfasst: Fr 18.10.02 17:08 
Hallo Leute,

ich versuche mich schon die ganze Zeit in die Client- und ServerSocket Geschichte Reinzudenken, aber irgendwie komm ich damit nicht so richtig klar:

Ich will eine art Chat-Programm schreiben. Muss ich dann immer den ServerSocket zuerst deaktivieren, wenn ich mit Hilfe des ClientSocket eine Nachricht versenden will, oder funktioniert das auch so. Oder bekomme ich dann meine eigene Nachricht selbst zugeschickt, da ja Server- und ClientSocket dieselben Ports besitzen?

Was bedeutet eigentlich die Adresseingabe im Objektinspektor beim ClientSocket?

Und das wichtigste: Muss ich einen ClientSocket zuerst mit dem Server über einen bestimmten Befehl verbinden, oder kann ich einfach mit dem Befehl „ClientSocket1.Socket.SendText(text);“ eine Nachricht versenden?

Bei mir kommt nämlich immer folgende Fehlermeldung: Asynchroner Socket-Fehler: 10053


Schon im voraus Danke,

Travis
O'rallY
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 563



BeitragVerfasst: Fr 18.10.02 17:36 
Also, das ganze mal ganz von vorn, obwohl ich mir sicher bin, das es hier irgendwo im Forum einen ähnlichen Artikel gibt.
Um eine Verbindung mit den Sockets herzustellen muss der Host die TServerSocket-Kompo aktiv haben und der Client die TClientSocket-Kompo. Beide Komponenten müssen auf dem gleichen Port laufen. Damit der Client den richtigen Server kennt, muss ihm eine Addresse gegeben werden, die IP. Im Feld Address kann man die IP angeben. Der Unterschied zur Host Property ist der, dass als Host auch der Computernamen zugewiesen werden kann. Wenn man die IP des Hosts kennt, sollte man sie gleich in das Feld Address eingeben, da wenn man den Namen in das Host-Feld schreibt erst noch die IP über den Namen ermittelt werden, was wiederum mehr Zeit in Anspruch nimmt.
Um eine Verbindung herzustellen muss man den Befehl ClientSoket1.Open; ausführen. Erst dann können mit SendText und Co. Daten verschickt werden.
Es ist auch möglich mehrere Server auf einem Computer laufen zu lassen, die aber verschiedene Ports haben müssen.

Und du musst den Server nicht erst deaktivieren, da ja der richtige Server über die IP gekennzeichnet wurde.

Hoffe ist verständlich ausgedrückt und hat dir geholfen.

_________________
.oO'rallY
Linux is like a tipi: No gates, no windows and a gnu-eating apache inside...
Travis Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48



BeitragVerfasst: Fr 18.10.02 18:07 
Danke für die schnelle Antwort. Ich hab zwar im Forum ähniche Themen gefunden, aber leider nichts genaues, was mir weiter geholfen hätte.

Travis
O'rallY
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 563



BeitragVerfasst: Fr 18.10.02 18:45 
Hat dir den wenigstens mein Post geholfen?

_________________
.oO'rallY
Linux is like a tipi: No gates, no windows and a gnu-eating apache inside...
Travis Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48



BeitragVerfasst: Fr 18.10.02 19:15 
Klar hat mir deine Antwort geholfen. Sorry, hatte ich vergessen dabei zu schreiben. Nur bin ich gerade noch mit einem anderen Delphi-Projekt beschäftigt (drei Projekte parallel), so dass ich es noch nicht ausprobieren konnte. Aber vom Verständnis her gesehen müsste jetzt alles klar sein. Wenn nicht, suche bzw. poste ich wieder.

Travis