Benutzer mit den meisten Antworten
Socket trennen

Frage
-
Guten Tag,
ich habe schon seit Ewigkeiten ein Problem. Ich arbeite an einer Serveranwendung, mit welcher sich Clients also verbinden können, Daten senden und empfangen können und dementsprechend auch wieder trennen müssen. An sich funktioniert alles, bis zu dem Punkt des Trennens. Ich hab einfach keine Ahnung, wie es funktioniert und hoffe hier von jemanden der Ahnung hat Hilfe zu bekommen. Ich weiß nicht genau wie ich es angehen soll, habe also auch keinen wirklichen Ansatz, alles was ich habe ist das:
temporaryClientSocket.Disconnect( true ); temporaryClientSocket.Close( ); temporaryClientSocket = null;
Aber ich glaube so ganz richtig ist das nicht. Kann mir wer helfen? (Die Definiton der Socketvariable ist diese:
Socket serverSocket = new Socket( AddressFamily.InterNetwork , SocketType.Stream , ProtocolType.Tcp );
Grüße
Maxim H.
Antworten
-
Hallo Maxim,
hast Du richtig verstanden, Disconnect wird implizit von Shutdown aufgerufen. Nur das Shutdown eben mehr tut als nur die Verbindung trennen. Eine detaillierte Beschreibung liefert die Windows Funktion shutdown, die von .NET aufgerufen wird. Als Background Graceful Shutdown, Linger Options, and Socket Closure.
Gruß Elmar
- Als Antwort markiert Maxim H Dienstag, 20. September 2016 20:42
Alle Antworten
-
Hallo Maxim,
vor dem Close sollte man Shutdown aufrufen, damit die Daten übertragen und eine Antwort empfangen wird.
Einfache Beispiele, die das Vorgehen zeigen, findest Du unter Socket Code Examples.
Gruß Elmar
-
Hallo Maxim,
hast Du richtig verstanden, Disconnect wird implizit von Shutdown aufgerufen. Nur das Shutdown eben mehr tut als nur die Verbindung trennen. Eine detaillierte Beschreibung liefert die Windows Funktion shutdown, die von .NET aufgerufen wird. Als Background Graceful Shutdown, Linger Options, and Socket Closure.
Gruß Elmar
- Als Antwort markiert Maxim H Dienstag, 20. September 2016 20:42