Hallo allerseits
Ich möchte gerne einen TCP Socket Server machen, bei sich ein Client verbinden kann, und periodisch Daten an den Server senden kann (z.B. alle 60 Sekunden). Werden keine Daten gesendet wird eine «Alive» Message gesendet, welch der Server dann quittiert.
Ich habe nun diverse TCP Socket Client/Server Beispiele gefunden und getestet. So z.B.:
- https://docs.microsoft.com/en-us/dotnet/framework/network-programming/synchronous-server-socket-example
- https://docs.microsoft.com/en-us/dotnet/framework/network-programming/asynchronous-server-socket-example
Auch die NuGet SimpleTCP habe ich versucht: https://github.com/BrandonPotter/SimpleTCP
Das Problem ist nun, dass alle Server-Beispiele die ich finden, die Verbindung mit dem Client schliessen, sobald eine Message des Clients quittiert wurde. Also z.B. mit:
- Shutdown(SocketShutdown.Both)
- Close()
Aber genau das will ich nicht. Der Client sendet eine Message, bevor er sich beendet z.B. «quit», erst dann soll sich die Verbindung beenden. Also so ähnlich wie in nachfolgendem C Beispiel (Verbindung beenden bei «quit» Eingabe).
http://openbook.rheinwerk-verlag.de/linux_unix_programmierung/Kap11-007.htm#bild
Als Testclient verwende ich https://sourceforge.net/projects/sockettest/. Nach Shutdown() bzw. Close() auf dem Server muss immer wieder neu verbunden werden, bevor eine neue Message gesendet werden kann.
Wie stelle ich es an, dass der Server zuhört und Anfragen quittiert, bis sich der Client verabschiedet?
Danke im Voraus und Gruss
olli