我注意到接受这个奇怪的问题。我有一台在FreeBSD上运行的服务器和一台在Windows上运行的客户端。
一切都很好,但我已经开始做一些压力测试了。我注意到来自
的1000个连接之后客户端,服务器只是停止接受任何新连接。知道为什么吗?
我猜测是与TCP协议握手有关,但其他人是否注意到了这一点?任何解决方案?
socket() // ipv4
bind()
listen(... , 0xFFFF)
while (true) {
sock=accept(socket, NULL, NULL);
if (sock<=0)
break;
close(sock);
}
int count=0;
while (true) {
count++;
socket(...)
connect(...)
close(...)
fprintf(stderr, "Count: %i\r", count);
}
连接1000次后,服务器将阻止接受。
我已将kern.ipc.maxsockets设置为65535,但没有效果。
答案 0 :(得分:0)
您似乎没有测试任何错误。我建议你那样做。我怀疑您会发现问题是由于端口耗尽,客户端已停止连接。
这种测试没有任何证据。您不会让单个客户端以最大速率连接和断开连接。