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.
If #1 is replaced with tcpClient.Client.Blocking = false;, tcpClient.Client.Connected has correct value(true).
I've set Socket.ReceiveTime
property to 100 and invoked Socket.Receive()
. Receive()
returned integer value greater than zero. No exception occurred.
After I do my job with copied buffer - I didn't user any of Socket related methods -, Socket.Connected property has been changed to false.
Why?