当服务器和客户端的Tcp连接一旦建立之后,即使客户端关闭连接, Connected的属性一直为True。使用Poll()函数可以解决这个问题。

        clientSocket 
= serverSocket.Accept();

        
while (clientSocket.Poll(-1, SelectMode.SelectRead))
        {
            
byte[] RecvBytes = new byte[1024];

            
int bytesLength = clientSocket.Receive(RecvBytes, RecvBytes.Length, 0);

            
if (bytesLength != 0)
            {
                strRecv 
= Encoding.ASCII.GetString(RecvBytes, 0, bytesLength);
            }

            
//客户端断开
            else
            {
                clientSocket.Shutdown(SocketShutdown.Both);
                clientSocket.Close();
                
break;
            }
        }

相关文章: