我用TCP方式建立一个socket服务端程序,部分代码如下:
listen(sock, 2);
accept(...);
就是说服务端允许两个客户端连接,调用accept函数是线程被阻塞,等待客户端连接,假如有客户端A和B,
问题:
如果A先连接,accept函数会立即返回吗?
然后如果B也连接,是否要重新调用一次accept函数?谢谢指教!
listen(sock, 2);
accept(...);
就是说服务端允许两个客户端连接,调用accept函数是线程被阻塞,等待客户端连接,假如有客户端A和B,
问题:
如果A先连接,accept函数会立即返回吗?
然后如果B也连接,是否要重新调用一次accept函数?谢谢指教!
<windows网络编程> 第8章 I/O模型
2、看你的程序了,在你的程序中是否会再次调用accept是由您的程序来决定的。
等系统处理完第一个连接以后,第二个连接也会被接受,这时系统又能缓冲一个连接了.如果两个连接都处理完了,系统会恢复到刚才的状态.(可以接受一个连接,缓冲一个,拒绝其他的)
所以最大连接数和listen没有任何联系,listen限制单位时间的同时连接数量.