首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET Framework >

.net里的Socket编程如何解决另外一端突然断开的有关问题

2013-12-02 
.net里的Socket编程怎么解决另外一端突然断开的问题?网上给的范例,简单socket服务器,在连接完毕后保持接收

.net里的Socket编程怎么解决另外一端突然断开的问题?
网上给的范例,简单socket服务器,在连接完毕后保持接收对方消息时的代码大部分类似下面的


Socket myClientSocket = (Socket)clientSocket;
            while (true)
            {
                try
                {
                    //通过clientSocket接收数据  
                    int receiveNumber = myClientSocket.Receive(result);
                    Console.WriteLine("接收客户端{0}消息{1}", myClientSocket.RemoteEndPoint.ToString(), Encoding.ASCII.GetString(result, 0, receiveNumber));
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    myClientSocket.Shutdown(SocketShutdown.Both);
                    myClientSocket.Close();
                    break;
                }
            }

但是这个方法有个很麻烦的问题,当客户端突然主动断开,或者网络自身突然断掉的情况下,不会出现异常,但是在这个时候会不停的执行while 里的内容,这该怎么处理呢?网上没有C#像c++那样明确处理网络断开的例子
[解决办法]

try
{
}
catch e
{
 //如果e的message里面有什么"XXXX断开连接"就说明对方下线了.
}

热点排行