我在网上浏览了大量的网络资料,并在互联网上搜索了很多内容,但仍然怀疑在listen()中积压的目的是什么。
注意: - 我在stackoverflow中也遇到了同样的问题/答案,但仍然感到困惑。
任何人都可以用简单的语言解释我吗?
如果listen中的backlog队列是待处理或不完整请求的数量,而不是我在backlog参数中提供5,那么仍然可以连接超过5个连接。
感谢。
答案 0 :(得分:1)
当您listen
在端口上时,TCP将完成您的连接(即3次握手)并将它们放入一个最大为积压队列大小的队列中。当您accept
连接时,您的pgm开始处理它,并且该队列中的那个插槽将打开另一个(潜在)连接。因此,如果您当前正在处理(已接受)5个连接,并且您的积压大小为5,那么tcp层仍然可以再建立5个连接。