日期:2014-05-18  浏览次数:20977 次

Socket.Close()的问题
C# code

//Socket
if (s != null)
{
    if(s.Connected)
       s.Shutdown(SocketShutdown.Both);
    s.Close();
}



这么写有什么问题么? 为什么每次关闭程序就卡住不动了.

win7 + .net2.0

(其他操作系统没有问题.)

------解决方案--------------------
为什么每次关闭程序就卡住不动了.
上面意识? 

 s.Shutdown(SocketShutdown.Both);
 起的是 禁止通行 类似的方法还有 DisConnect 

如果直接断开 直接 调用 Close 就好了
------解决方案--------------------
if (s != null)
{
if(s.Connected) //当它返回 false 时,表明 Socket 要么从未连接,要么已断开连接。
s.Shutdown(SocketShutdown.Both);
else 
s.Close();
}