您的位置:首页 > 编程语言 > C#

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

2013-03-18 12:42 1256 查看
http://blog.sina.com.cn/s/blog_5f2833390100nked.html

关于客户端断开连接的时候,服务端会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 });
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐