none
Async Server Timeout RRS feed

  • Frage

  • Hallo Leute,
    ich habe einen asynchronen Server programmiert.

    Dieser Server wird mittels ".BeginAccept" gestartet und startet im AcceptCallback mittels ".BeginReceive" den Empfang.
    Im ReadCallBack werden die Zeichen, die der Client sendet, empfangen und das .BeginReceive immer wieder gestartet bis die Zeichenfolge für EOF eintrifft und der Server die Verbindung wieder schließt.

    Kurzversion: Client öffnet die Verbindung zum Server sendet eine kleine Datenmenge mit anschließenden EOF -> Der Server empfängt die Daten, liest das EOF schickt eine Antwort zum Client und schließt die Verbindung.

    Das ist eigentlich die klassische Vorgangsweise und das funktioniert auch so wie es soll.

    Jetzt mein Problem.
    Es kann aus irgendwelchen Gründen (zB. Client hängt sich auf) dazu kommen, dass der Client die Verbindung zum Server öffnet und auch Zeichen dorthin sendet, jedoch die EOF-Zeichenfolge nicht mehr sendet. Dann bleibt die Verbindung dauerhaft geöffnet was ich vermeiden möchte.
    In so einer Situation (wenn EOF nicht ankommt) sollte der Server nach einer bestimmten Timeoutzeit die Verbindung selbstständig schließen.

    Wie kann ich das machen?

    Vielen Dank im Voraus


    Christian Tauschek

    Sonntag, 19. März 2023 06:47

Alle Antworten