Announcement

Collapse
No announcement yet.

TServerSocket - ungültige Connections

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • TServerSocket - ungültige Connections

    Hallo Leute,

    Seit paar Tagen experimentiere ich mit den Componenten "TServerSocket" und "TClientSocket".
    Meine Frage bezieht sich mehr auf die Eigenschaften von "TServerSocket" wie "ActiveConnections" und "Connections". Wenn ein Clientprogramm abstürzt (oder der Rechner ), dann bleibt eine Verbindung bestehen. Diese ist aber nicht mehr gültig. Wie kann ich das feststellen ? Über die Eigenschaft "Connected" kann man es nicht. Die ist nach dem Absturz immer noch "True". Wenn ich versuche die Daten an Client zu schicken ( SendText ), liefert die Funktion die Anzahl der gesendeten Bytes zurück, was eigentlich einen Erfolg bedeutet. Macht man das mehrere Mals hintereinander, kommt es irgendwann zum Fehler. Das ist mir aber zu unsicher. Gibt es eine Andere Möglichkeit festzustellen, ob eine Verbindung gültig ist?

  • #2
    Hi!

    Das Problem ist, das eine Verbindung erst nach Ablauf des Timeouts feststellen kann, dass die Verbindung nicht mehr steht.

    Selbst bei einer "stehenden" Verbindung werden die Pakete losgeschickt. Nur, wenn innerhalb des "Timeouts" keine Bestätigung kommt, merkt der Socket, das die Verbindung nicht mehr steht und löst eine Exception aus.

    Generell beinhalten Protokoll deswegen eine Ebene höher ebenfalls Bestätigungsmeldungen.

    Wenn z.B. der Socket auf der Gegenseite einfach geschlossen wird, dann schickt der TCP-Stack noch ein Close-Paket an die Gegenseite, in diesem Fall weiss die Gegenstelle es sofort, bei einem Absturz natürlich kann er das Close nicht schicken, deswegen erst nach "timeout"

    cu
    Tim

    Comment


    • #3
      Danke für deine Antwort, Timo.

      Eduar

      Comment

      Working...
      X