static void serverReceive(Socket client)
{
while (true)
{
//测试一下是否可以读取,不可以读取器,就关闭本端的socket。
if (client.Poll(1000, SelectMode.SelectRead))
{
client.Shutdown(SocketShutdown.Both);
client.Close();
}
//尝试接收数据,在本端关闭的情况会检测出错误。
//(如果本端没有关闭,知识客户端关闭了,那么是没有异常的会无限循环收到空消息)
try
{
//接收客户端消息
byte[] byteReceiv = new byte[1024];
int leng = client.Receive(byteReceiv); //接收了lang个字节
string strReceiv = Encoding.UTF8.GetString(byteReceiv, 0, leng);
Console.WriteLine("接收到消息:" + strReceiv);
}
catch (Exception ex)
{
Console.WriteLine("捕获到异常:"+ex.Message+"End...");
break;
}
finally
{
Console.WriteLine("----------------------------------------------");
}
}
}
大伟,Tcp链接,客户端异常断开情况下,服务端的处理方法
最新推荐文章于 2023-03-16 20:43:44 发布