|
|
1
2
我看不到还有很多要考虑的问题。 除了 更新: listen()还有第二个参数,即请求的OS/TCP队列深度。您可以将其设置为操作系统限制。除此之外,您还需要使用系统旋钮。在我目前的系统中,它是128,所以它不是巨大的,但也不是微不足道的。检查你的系统,考虑你是否真的需要比默认更大的东西。 除此之外,你还可以选择几个方向。考虑吻——在实际需要之前没有复杂性。从一些简单的事情开始,比如只需要一个线程来接受连接(达到一定的限制),然后将它们放到队列中。工作线程拾取、处理、写入结果并关闭套接字。
|
|
|
2
1
|
|
|
3
1
如果您使用basic_socket_acceptor的重载构造函数绑定和侦听给定端点,它将使用SOMAXCONN作为listen()调用中挂起连接的积压。我认为(不是很确定)这在Windows中映射到250。因此,网络服务提供商将(静默地)接受达到此限制的客户端连接,并将它们排队等待您的应用程序处理。您的下一个接受呼叫将从此队列弹出一个连接。 |