注意:答案的框架没有使用Python的任何背景知识,但是,这些问题与要回答的语言无关。
这些 排队的连接是 什么?
简而言之,backlog参数指定队列将保留的未决连接数。
当多个客户端连接到服务器时,服务器会将传入的请求保留在队列中。客户端排列在队列中,服务器在队列成员前进时一一处理它们的请求。这种连接的性质称为排队连接。
对客户的要求有什么不同吗?(我的意思是,运行时所在的服务器与运行时所在
socket.listen(5)的服务器socket.listen(1)在接受连接请求或接收数据方面是否有所不同?)
是的,两种情况都不同。第一种情况只允许将5个客户端安排到队列中;而在backlog = 1的情况下,队列中只能保留1个连接,从而导致其他连接请求的丢弃!
为什么最小值为零?不应该至少是1吗?
我不了解Python,但是根据C的源代码,积压参数0可能允许套接字接受连接,在这种情况下,侦听队列的长度可以设置为实现定义的最小值。
有优先值吗?
这个问题没有明确的答案。我要说的是,这取决于应用程序的性质,以及硬件配置和软件配置。再次,根据来源,
BackLog默默地限制为1到5(含)之间(同样根据C)。
此积压仅是为TCP连接定义的,还是也适用于UDP和其他协议?
没有。请注意,对于未连接的数据报套接字(UDP),不需要listen()或accept()。这是使用未连接的数据报套接字的好处之一!
但是,请记住,然后还有基于TCP的数据报套接字实现(称为TCPDatagramSocket),它们具有backlog参数。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)