如何妥善处理"现有连接被强行关闭"

时间:2014-05-15 16:13:11

标签: c# .net multithreading networking tcp

我创建了一个多线程TCP服务器。当客户端断开连接时,我收到了

“远程主机强行关闭现有连接”错误。

除了捕获错误之外,处理远程客户端断开连接的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

假设您的服务器正在处理等待传入数据的连接:

当您从Socket或NetworkStream中读取时,Read函数将返回0,清楚地表明您已从远程客户端断开连接。

NetworkStream in = ...; 
...
readed = await in.ReadAsync(buffer, count, available);
if( readed == 0 ){
   // we are disconnected.
}