请解释套接字缓冲区

Odi*_*aeb 1 python sockets stackless python-stackless

我试图找到关于套接字编程的例子并且发现了这个脚本:http: //stacklessexamples.googlecode.com/svn/trunk/examples/networking/mud.py

通过这个脚本阅读我发现这一行:listenSocket.listen(5)

据我所知 - 它从缓冲区读取5个字节,然后用它做东西......

但如果另一端发送超过5个字节会发生什么?

在该脚本的另一个位置,它根据4个命令检查输入,并查看字符串中是否有\ r \n.不要像"look"加上\ r \n这样的命令弥补超过5个字节?

艾伦

Mik*_*scu 13

以下内容适用于一般的套接字,但它应该有助于回答有关使用Python套接字的具体问题.

socket.listen()用于服务器套接字以侦听传入的连接请求.

传递给listen的参数称为backlog,它表示套接字应接受多少连接并放入挂起缓冲区,直到完成对accept()的调用.这适用于在您调用listen()和完成匹配调用accept()之间等待连接到服务器套接字的连接.

因此,在您的示例中,您将积压设置为5个连接.

注意 ..如果您将待办事项设置为5个连接,则将删除以下连接(第6个,第7个等)并且连接套接字将收到错误连接消息(类似"主机主动拒绝连接"消息)