解决方案 »

  1.   

    异常是可以用 try 来捕获的
    不管怎么整,连接都不是一定成功的,所以从逻辑上你要用代码来保证
    比如设置一个重新尝试的次数,出现异常了自动重新连接 5 次
      

  2.   

     if (socket.Connected && socket.Poll(0, SelectMode.SelectRead))
                    {
                        byte[] msg = new byte[1];
                        if (socket.Receive(msg, 0, 1, SocketFlags.Peek) != 0)
                            return true;
                        else
                            return false;
                    }这个玩意儿也有不能检测是否可以向服务器发消息的时候,服务器为了安全,超过5分钟都不会自动断开。我4分钟主动断开,每次超过4分钟我就断开,重新链接谢谢你们的建议,以前我一直在考虑是否是服务器问题