通过单个服务器的accept()调用可以同时建立多少个客户端连接 套接字实例?你能改变这个值吗?
我在家庭作业上遇到了这个问题,我很困惑。 accept()从侦听套接字的队列中提取连接请求并从中创建一个新的套接字...因此,并发连接的数量由accept()本身解除绑定。
让我感到困惑的是跟进问题。如果答案是无限的,那么问它是否可以改变是不是很奇怪?听起来这个问题实际上是在谈论listen(),它将监听队列的长度作为参数。但问题明确说明了accept()。
答案 0 :(得分:1)
这是一个措辞不好的问题。如目前所述,它没有明确的答案,因为它取决于当时进程和操作系统可用的空闲文件描述符的数量,以及内核内存等其他不可思议的内容。
然而,要求的可能是积压队列的长度,该队列与accept()
本身无关,但已确定,或者更确切地说,通过backlog
参数向listen()
暗示,然而平台可以在不事先通知的情况下向上或向下调整,并且没有任何方法可以发现实际使用的值。
假设每个接受的套接字需要一个新的本地端口,它们也可能期望得到65534的错误答案。它没有。