Eine bestehende Verbindung wurde vom Remote-Host zwangsweise geschlossen

Ich arbeite mit einer kommerziellen Anwendung, die eine SocketException mit der Meldung @ auslös

Eine bestehende Verbindung wurde vom Remote-Host zwangsweise geschlossen

Dies geschieht mit einer Socket-Verbindung zwischen Client und Server. Die Verbindung ist aktiv und in Ordnung, und es werden viele Daten übertragen, die dann jedoch aus dem Nichts getrennt werden.

Hat jemand das schon mal gesehen? Was könnten die Ursachen sein? Ich kann ein paar Ursachen erraten, aber gibt es auch eine Möglichkeit, mehr in diesen Code einzufügen, um herauszufinden, was die Ursache sein könnte?

Kommentare / Ideen sind willkommen.

... Das Neueste ..

Ich habe einige Protokollierung von einigen .NET-Ablaufverfolgung,

System.Net.Sockets Verbose: 0 : [8188] Socket#30180123::Send() DateTime=2010-04-07T20:49:48.6317500Z

System.Net.Sockets Error: 0 : [8188] Exception in the Socket#30180123::Send - An existing connection was forcibly closed by the remote host DateTime=2010-04-07T20:49:48.6317500Z 

System.Net.Sockets Verbose: 0 : [8188] Exiting Socket#30180123::Send() -> 0#0

Basierend auf anderen Teilen der Protokollierung habe ich die Tatsache gesehen, dass "0 # 0" bedeutet, dass ein Paket mit einer Länge von 0 Bytes gesendet wird. Aber was heißt das eigentlich?

s gibt zwei Möglichkeiten, und ich bin mir nicht sicher, welch

1) Die Verbindung wird geschlossen, es werden jedoch Daten in den Socket geschrieben, wodurch die obige Ausnahme verursacht wird. Die 0 # 0 bedeutet einfach, dass nichts gesendet wurde, weil der Socket bereits geschlossen war.

2) Die Verbindung ist noch offen und ein Paket mit null Bytes wird gesendet (d. H. Der Code weist einen Fehler auf), und 0 # 0 bedeutet, dass ein Paket mit null Bytes gesendet werden soll.

Was glaubst du? Es mag vielleicht nicht schlüssig sein, aber vielleicht hat jemand anderes so etwas gesehen?

Antworten auf die Frage(9)

Ihre Antwort auf die Frage