ClientSocket
-
Hi
Ich habe hier ein Chat-Fremdprogramm und eine allgemeine Frage zum Kommunikationsablauf.
Wenn ich mich mit dem Programm verbinde und sende ein "hallo", dann sendet er mir eine Willkommensnachricht zurück. So in der Art "Willkommen IP:xx.xx.xx. Verbunden mit Socket 1"
Beende ich die Verbindung und melde mich nochmal an, bekomme ich "Verbunden mit Socket 2" und wenn wieder neu "Verbunden mit Socket 3" und so weiter.
Ich beende die Verbidnung immer mit ClientSocket->Close();
Das Close() meldet mich aber vom Server nicht ab, sondern beendet nur eine Kommunikation mit diesen, richtig? Kann man sich richtig abmelden oder müsste ich einen speziellen Befehl an den Server senden, der irgendwo dokumentiert sein müsste, weil das Programmspezifisch ist?Gegenfrage wäre, kann man sich zu einem bestimmten bestehenden Socket gezielt verbinden? Ich kenne leider nur ClientSocket->Open()
Kann da wer weiterhelfen? Wäre wirklich nett

-
Oh, mit Sockets beschäftigen sich wohl wenige ( mal abgesehen von denen, die zur Schule/Arbeit sind
)
-
erlich gesagt, verstehe ich nicht ganz was du willst

und was verstehst du unter "abmelden"?
wenn das über ein serverspezifisches protokoll geschieht, dan können wir nicht wissen wie das geht
-
Steht in der Dokumentation zum Protokoll das du implementieren willst.
-
Chatti schrieb:
Oh, mit Sockets beschäftigen sich wohl wenige
Bitte die Suchfunktion benutzen, das Thema ist hier schon zig mal diskutiert worden.
-
BigNeal schrieb:
wenn das über ein serverspezifisches protokoll geschieht, dan können wir nicht wissen wie das geht

Ja genau das ist doch meine Frage. Macht das die Komponente oder muss man einen Befehl per Hand senden. Gibt es eventuell dafür sogar einen standard Befehl oder macht das jeder wie er möchte? Ich habe kein "Protokoll" das ne 0815 TCP/IP Verbindung. Ich gebe im Chatprogramm eine IP ein und Port 12345 ist vordefiniert .. fertig! Was also soll ich jetzt zu einem "protokoll" gross sagen? Sagte ja das ich mich auf das Beispiel unter Example\Internet im CBuilder Ordner beziehe.
@eeeeeee
Es gibt keine Dokumentation und ich glaube kaum das dort beschrieben steht wie man zunm selben Socket connecten kann, da dies nichts mit einem Protokoll zu tun hat.@Jansen
Natürlich zuerst genutzt. Ich bekomme da 3 Ergebnisse die mir allesamt nix bringen.
Die Suchdatenbank insgesamt scheint sehr unvollständig zu sein.
-
Also ich versteh auch nicht so ganz was du willst, aber ich verbinde mich immer mit "ClientSocket1->Active = true;" oder false um die Verbindung komplett zu trennen.
-
Wahrscheinlich ist die Frage zu einfach formuliert ^^
Wenn man Active = false setzt bzw Close() macht, wird dann dem Server etwas mitgeteilt an dem man verbunden war oder ist nur einfach die Kommunikation vom Clientserver beendet?
Resultierend daraus.......
Falls nur beendet:
Wenn der Server also mitbekommen soll, das ein Client verschwunden ist, muss man sich also einen Befehl für das Protokoll ausdenken den man bevor man sich abmeldet zum Server sendet. Bedeutet also für mich, es gibt keinen Standardbefel und ich muss den Befehl herrausfinden indem ich den Programmierer frage der das Serverprogramm erstellte.Das war meine Frage 1. Ich hoffe sorum formuliert kommt es besser rüber.

Frage 2, worauf leider noch garnicht eingegangen wurde, war:
Wenn man eine Verbindung hatte, welche mit Socket 2 benannt wurde, kann man nachdem man sich neu verbindet zu diesem Socket wieder verbinden? Sprich kann ich wo die Socketnummer, im ClientSocket, festlegen zu der ich mich zum Server verbinden möchte?
-
Zum Stichwort socket liefert die Suchfunktion vier Seiten. Ein kleiner Auszug:
http://c-plusplus.net/forum/viewtopic-var-t-is-146789-and-highlight-is-*socket*.html
http://c-plusplus.net/forum/viewtopic-var-t-is-144833-and-highlight-is-*socket*.html
http://c-plusplus.net/forum/viewtopic-var-t-is-142793-and-highlight-is-*socket*.html
http://c-plusplus.net/forum/viewtopic-var-t-is-142703-and-highlight-is-*socket*.html
http://c-plusplus.net/forum/viewtopic-var-t-is-142385-and-highlight-is-*socket*.html
http://c-plusplus.net/forum/viewtopic-var-t-is-138636-and-highlight-is-*socket*.html
-
Ich habe wie bereits gesagt schon gesucht, ich habe diese auch gelesen und sie hatten keine Antworten auf meine Fragen!
Schade

-
Ach so, nee ich glaub bei meinem Beispiel wird da auch nur die Verbindung getrennt.
Ich mache das immer so, das wenn ich auf den Disconnect Button klick oder das Programm beendet wird (OnFormDestroy), dass dann vorher eine Nachricht an den Server geschickt wird und darauf kann der Server dann reagieren.