Die Eigenschaft C # Socket.Connected wird nach dem Aufrufen von Socket.Receive in false geändert

<code>int readCount;
byte[] buffer = new byte[128];
SocketError socketError;

TcpClient tcpClient = tcpListener.AcceptTcpClient();
tcpClient.Client.ReceiveTimeout = 500; // #1
// tcpClient.Client.Connected is **true** here.
readCount = tcpClient.Client.Receive(buffer, 0, buffer.Length, SocketFlags.None, out socketError); // reacCount > 0
// tcpClient.Client.Connected is **false** here.
</code>

Wenn # 1 durch ersetzt wirdtcpClient.Client.Blocking = false;, tcpClient.Client.Connected hat den richtigen Wert (true).

Ich habe eingestelltSocket.ReceiveTime Eigentum zu 100 und aufgerufenSocket.Receive(). Receive() Gibt einen ganzzahligen Wert größer als Null zurück. Es ist keine Ausnahme aufgetreten. Nachdem ich meinen Job mit kopiertem Puffer erledigt habe - ich habe keine der Socket-bezogenen Methoden verwendet -, wurde die Eigenschaft Socket.Connected in false geändert. Warum?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage