加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

C# 无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接。。

(2010-12-22 11:43:35)
标签:

杂谈

分类: 软件
  关于客户端断开连接的时候,服务端会catch到一个socketException端口异常提示,无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接。。此时,如果按以下写法,服务器没法再接收到新的数据

           public void TCPStart()
        {
            try
            {
                tcpListener = new TcpListener(IPAddress.Parse(publicClass.GetLoaclIP()), TCPlistenerPort);
                tcpListener.Start();
                while (true)
                {
                    allDone.Reset();
                    tcpListener.BeginAcceptTcpClient(new AsyncCallback(AcceptCallBack), tcpListener);
                    allDone.WaitOne();
                }
            }
            catch (Exception ex)
            {
                MainForm.NowForm.Invoke(MainForm.NowForm.delegateSetState, new string[] { "Err:" + ex.Message });
            }
        }


其实原因很简单,把try写进循环里面就行了,得细心一点才行啊!!
      public void TCPStart()
        {
            tcpListener = new TcpListener(IPAddress.Parse(publicClass.GetLoaclIP()), TCPlistenerPort);
            tcpListener.Start();
            while (true)
            {
                try
                {
                    allDone.Reset();
                    tcpListener.BeginAcceptTcpClient(new AsyncCallback(AcceptCallBack), tcpListener);
                    allDone.WaitOne();
                }
                catch (Exception ex)
                {
                    MainForm.NowForm.Invoke(MainForm.NowForm.delegateSetState, new string[] { "Err:" + ex.Message });
                }
            }
        }

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有