c# - 如何正确处理 "existing connection forcibly closed"

标签 c# .net multithreading networking tcp

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

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

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

最佳答案

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

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

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

关于c# - 如何正确处理 "existing connection forcibly closed",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23683581/

相关文章:

c# - 如何在 Xamarin 中使用哈希 SHA

javascript - 如何将 JS Date 格式化为 C# 兼容的 DateTime?

c# - TransformXml 任务在 linux 上使用 mono 通过 msbuild 失败

c# - 正则表达式:匹配除 . 之外的任何标点符号。和 _

ios - Swift:多点连接 + UI 更新

c# - 如何将异步与锁定结合起来?

javascript - KnockOut 无法解析绑定(bind)

c# - 温莎城堡 Nhibernate 设施延迟加载

java - 如何创建一个共享计时器,在第一次初始化后减少

c - pthreads:如何断言代码在单线程上下文中运行