(Server)Socket und (Client)Socket richtig beenden.

  • C#

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Markus Jacobs.

    (Server)Socket und (Client)Socket richtig beenden.

    Hallo,

    ich, schon wieder förmlich am durchdrehen, raffe einfach nicht, was genau wann zu welchem Zeitpunkt passieren muss.

    Einrichten des Serversockets funktioniert supii... alles schön mit Async und und und...

    Nur dann wenns um´s beenden des Serversockets und all dessen Verbindungen geht.

    Für gewöhnlich gibt es (zumindest bei mir) einen Server Socket den ich auf IPAddress.Any und irgend nen Port (z.B. in meinem Fall 5400) binde.
    Sobald der gebunden ist, versetze ich den in den Lauschen Status mit der Listen()-Methode.

    Ich habe eine Klasse in der Informationen zu jeder verbindung drinne sind, einmal z.B. das ClientSocket (welches durch BeginAccept vom ServerSocket instanziert wird) und diverse Reader... (nebensächlich).

    Nach dem der Server Socket im Listen Zustand ist werden Clients akzeptiert und für jeden Client ein Objekt meiner Klasse Connection angelegt und in eine List<Connection> hinzugefügt.
    So weit so gut, all das funktioniert auch prima... mein einziges Problem ist das richtige beenden des Ganzen palabers.

    Ich habe mir gedacht das zuerst alle Clients disconnected werden müssen, heißt so viel wie ich mach ne for schleife für jede connection in der List<Connnection> und trenne die Verbindung mit der Disconnect(false) Methode.

    Danach wenn alle Clients disconnected sind (scheint) will ich den ServerSocket stoppen. Nur wie?

    Bei den Clients bin ich mir schon nich sicher ob da das einfache Disconnect reicht....oder muss auch noch die Close() Methode aufgerufen werden?
    Und beim Server..?? Wie beende ich den Server richtig? Auch disconnecten? so ne methode wie entbinden gibbet ja nicht... da gibts halt auch nur disconnect, close usw...
    Welche Methoden muss ich wann wo und wie anwenden?

    Danke im Voraus.