我试图找到关于套接字编程的例子并且发现了这个脚本: http://stacklessexamples.googlecode.com/svn/trunk/examples/networking/mud.py
阅读此脚本时,我发现此行: listenSocket.listen(5)
据我所知 - 它从缓冲区读取5个字节,然后用它做东西......
但如果另一端发送超过5个字节会发生什么?
在该脚本的另一个位置,它根据4个命令检查输入,并查看字符串中是否有\ r \ n。不要像“look”加上\ r \ n这样的命令补充超过5个字节吗?
艾伦
答案 0 :(得分:13)
以下内容适用于一般的套接字,但它应该有助于回答有关使用Python套接字的具体问题。
在服务器套接字上使用socket.listen()来侦听传入的连接请求。
传递给listen的参数称为 backlog ,它表示套接字应接受多少连接并放入挂起缓冲区,直到您完成对accept()的调用。这适用于在您调用listen()和完成匹配调用accept()之间等待连接到服务器套接字的连接。
因此,在您的示例中,您将积压设置为5个连接。
注意 ..如果将待办事项设置为5个连接,将删除以下连接(第6个,第7个等),并且连接套接字将收到错误连接消息(类似“主机主动拒绝连接”消息)
答案 1 :(得分:0)
这可能有助于您理解代码:http://www.amk.ca/python/howto/sockets/
答案 2 :(得分:0)
参数5
到listenSocket.listen
不是要读取或缓冲的字节数,而是backlog
:
听取与之建立的联系 插座。 backlog参数指定 最大排队数 连接,至少应为1; 最大值取决于系统 (通常是5)。