服务器套接字在Close_Wait状态下挂起

5
场景如下:
我从我的C#服务器应用程序向客户端发送大量数据。
突然间,数据流停止了,在客户端没有数据更新,端口被阻塞了。

当发生这种情况时,服务器端的症状如下:

  1. 该端口(netstat)中的Close_Wait
  2. 日志中出现Operation Would block(错误代码:135)
  3. 无法从客户端建立新连接
  4. Telnet无法连接到该端口

目前我们每次遇到问题都会重新启动服务器。显然,这不是一个解决方案。

有人能提供一个解决方案,解决Windows Server 2008中服务器套接字卡在Close_Wait状态的问题吗? 对于这种情况的任何建议将不胜感激。

谢谢您的帮助。

1个回答

1

CLOSE_WAIT 表示对等方已关闭连接,TCP 正在等待本地应用程序关闭套接字。

所以请关闭它。


我在这里使用IPWorks,无法发送Shutdown,只能使用close()。我认为close内部包含shutdown()。当我使用异步套接字(winsock)而不是ipworks时没有问题。但在IPWorks中,我不知道该如何解决它。 - C-va
@MSK 关闭与我的回答完全无关。情况仍然是一样的。关闭套接字。 - user207421

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接