未处理的异常:System.Net.Sockets.SocketException:远程主机强迫关闭了一个现有的连接这个异常是在一个客户的机子上出现的,程序在很多电脑上都可以正常运行,只有在那个电脑上只要有客户端连接就直接挂掉,而且用一些调试助手在那个机器上也可以正常运行,而且而且而且用调试助手作为客户端也没有问题,但是手机客户端通过移动网络连接就出现这个异常,到底什么情况啊

解决方案 »

  1.   


    //一种会导致“远程主机强迫关闭了一个现有连接”的情况

    //发送端
       //实例化Socket
                Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                IPEndPoint ipPoint = new IPEndPoint(IPAddress.Parse("192.168.1.44"), 8888);
                client.Connect(ipPoint);//接收端
            //监听所有ip  
                IPEndPoint ipPoint = new IPEndPoint(IPAddress.Any, 8888);
                TcpListener tcpListener = new TcpListener(ipPoint);
                tcpListener.Start();            
                while (true)
                {
                    //如果没有Connect请求
                    if (!tcpListener.Pending())
                    {
                        Thread.Sleep(1000);
                        continue;
                    } else
    {
                    //如果有Connect请求
                    Socket client = tcpListener.AcceptSocket();   //lineA

    /*要执行的代码
    *
    *
    *
    */要执行的代码
    //关闭 套接字。
    client.Close(); //lineB }
     
       }
    //在接收端,lineA一下的语句执行时,如果没有执行client.Close(),接收端就突然终止了。发送端就会提示:远程主机强迫关闭了一个现有连接。