C#怎么判断一个Socket是否连接

  判断Socket是否连接上,需要通过发包来确认:

 1         // 检查一个Socket是否可连接
 2         private bool IsSocketConnected(Socket client)
 3         {
 4             bool blockingState = client.Blocking;
 5             try
 6             {
 7                 byte[] tmp = new byte[1];
 8                 client.Blocking = false;
 9                 client.Send(tmp, 0, 0);
10                 return false;
11             }
12             catch (SocketException e)
13             {
14                 // 产生 10035 == WSAEWOULDBLOCK 错误,说明被阻止了,但是还是连接的
15                 if (e.NativeErrorCode.Equals(10035))
16                     return false;
17                 else
18                     return true;
19             }
20             finally
21             {
22                 client.Blocking = blockingState;    // 恢复状态
23             }
24         }

  这个函数是MSDN上提供的,经过测试,效率不错,反应很快,结合前面的多线程来检测多个Socket,以完成在线Socket界面实时更新非常不错。

  转载请注明原址:http://www.cnblogs.com/lekko/archive/2012/08/02/2619197.html 

原文地址:https://www.cnblogs.com/lekko/p/2619197.html