-
16-09-2019 - |
题
我试图找到有关socket编程例子并且这个脚本来了: http://stacklessexamples.googlecode.com/svn/trunk/examples/联网/ mud.py
当通过该脚本读我发现这个行: listenSocket.listen(5)
据我所知 - 它从缓冲器读取的5个字节,然后再执行的东西与它...
但如果超过5个字节是由另一端发送会发生什么?
在其他地方,脚本的它检查对4个输入的命令,并认为如果存在\ r \ n中的字符串中。不命令像“看”加\ r \ n弥补超过5个字节?
艾伦
解决方案
以下是适用于一般的插座,但它应该帮助回答您的具体问题有关使用套接字从Python的。
socket.listen()上使用的服务器插座监听传入的连接请求。
传递给听的参数叫做的积压的,这意味着许多连接应该怎么插座接受并放于待决缓冲器,直到完成调用accept()。这适用于正在等待连接到你叫听()的时候,你已经完成了配套的呼叫接受的时间()。
之间连接到服务器套接字所以,在你的榜样,你要积压设置为5个连接。
注意 ..如果您的积压设置为5个连接,下面连接(第六,第七等)将被丢弃,并安装接管将收到的错误连接消息(像一个“宿主积极拒绝连接”的消息)
其他提示
这可能会帮助你理解代码: http://www.amk.ca/蟒/ HOWTO /插座/
的参数5
到listenSocket.listen
不是读取或缓冲的字节数,它是backlog
:
收听用于向形成的连接 插座。积压参数指定 的排队的最大数量 连接和应至少为1; 最大值是依赖于系统的 (通常为5)。
不隶属于 StackOverflow