Właściwość C # Socket.Connected jest zmieniana na false po wywołaniu Socket.Receive

<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>

Jeśli # 1 zostanie zastąpione przeztcpClient.Client.Blocking = false;, tcpClient.Client.Connected ma poprawną wartość (true).

UstawiłemSocket.ReceiveTime właściwość do 100 i wywołanaSocket.Receive(). Receive() zwrócona wartość całkowita większa od zera. Nie wystąpił wyjątek. Po wykonaniu mojej pracy z skopiowanym buforem - nie użyłem żadnej z metod związanych z Socket -, właściwość Socket.Connected została zmieniona na false. Czemu?

questionAnswers(2)

yourAnswerToTheQuestion