Windows服务器2008发送[RST,ACK]数据包,而多个客户端同时请求tcp连接(少于5毫秒)

时间:2016-01-28 08:49:28

标签: sockets tcp

我在 Windows Server 2008 上运行 Java Socket Server

当使用多线程客户端同时发送多个 TCP 连接时,客户端始终会拒绝<#34; Errno 111连接&#34 ;建立第一个连接后出错。

这里有 Wireshark (10.1.3.136是服务器,10.34.10.132是客户端)的捕获跟踪:Trace,特定的红色跟踪在此处:{ {3}}

那么,问题是什么?

如果我延迟启动线程超过5毫秒,或使用centos作为服务器,则错误消失。服务器跟踪文件中没有发现异常。

1 个答案:

答案 0 :(得分:0)

问题是你已经填满了积压队列,因此Windows开始向进一步的传入连接请求发出重置。

这可能是因为您指定了一个小的积压值,但更可能的原因是您的服务器根本不能足够快地接受连接:您的接受循环正在摆弄其他事情,例如DNS调用甚至I / O与客户端,所有这些都应该在客户端的线程中完成。所有接受循环都应该接受套接字并启动线程。