从手册:
传递给backlog参数的最大数量很大程度上取决于 底层平台。在Linux上,它被默默地截断为 SOMAXCONN。在win32上,如果传递了底层服务SOMAXCONN 负责套接字的提供程序会将积压设置为最大值 合理的价值。找不到标准条款 此平台上的实际积压值。
天啊,如果我还想自己限制连接怎么办?限制连接,如:
if( count($client_sockets) < $max_clients ) {
//accept connection
} else {
echo "Limit reached!";
}
与socket_select()
结合使用效果不佳,因为函数仍然有传入连接,服务器需要正确处理!接受连接&gt; $max_clients
而不是立即关闭它不是一种选择,所以...也许有人知道该怎么做?
答案 0 :(得分:1)
从另一篇文章中我了解到,如果它与所需条件不匹配,那么允许连接实际上是可以接受的,而不是关闭它。所以多连接套接字服务器的方案是:
socket_accept()
用于传入连接,socket_select()
正确处理,因此服务器不再为此烦恼; socket_close()
此特定连接并将其从客户端数组中删除(或者您可能用于此类目的的任何其他内容)。也许它会帮助别人。