Python套接字:为什么服务器只能接受选择中的6个请求?

时间:2017-08-08 09:50:12

标签: python sockets select

最近我在python中做了一个socket项目,主要是在公司的网络服务器上部署一个程序,作为内部网络和外部网络通信的桥梁。

架构如下:假设C是我们的服务器,有两个主机A和B:

  • B是"桥梁"使用端口83与服务器C连接的A和C,使用端口80与A连接(我们可以使用A和B调用连接:socket_msg)
  • 使用端口80来监听B,而另一个端口81用于监听其他客户端。

当客户向A80的8081端口发送请求时,

  1. A将通过socket_msg向B发送消息,要求建立新连接。

  2. 当B收到" Establish Required"时,它与A建立新连接(new_conn)。

  3. 然后A通过new_conn将客户端的数据发送给B,B将它们发送给C并获得回复,稍后将回复给A和客户端。
  4. 我使用"选择"在A和B 中,轮换侦听来自客户端的请求。

    现在的问题是我使用网页(例如:127.0.0.1:8081)向A发送请求,总共21个请求,但 A总是只能接受6个请求,像那样: The request condition in chrome 当我在cmd中使用netstat -na | findstr 8081时,我会收到: netstat result

    我想知道问题是客户端套接字无法正确关闭,但是当我在可读客户端套接字发回所有回复后添加代码s.close()时,我检查网页请求,它只有一个reuqest!

    我不知道我是否清楚地描述了这个问题,但你可以帮助我吗?我正在寻找你们的建议!

0 个答案:

没有答案