La propiedad C # Socket.Connected se cambia a falso después de llamar a 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>

Si el # 1 es reemplazado portcpClient.Client.Blocking = false;, tcpClient.Client.Connected tiene el valor correcto (verdadero).

He puestoSocket.ReceiveTime Propiedad a 100 e invocada.Socket.Receive(). Receive() valor entero devuelto mayor que cero. No se produjo ninguna excepción. Después de hacer mi trabajo con el búfer copiado (no usé ninguno de los métodos relacionados con Socket), la propiedad Socket.Connected se cambió a falso. ¿Por qué?

Respuestas a la pregunta(2)

Su respuesta a la pregunta