如何在同一端口上接收和管理多个TCP连接?

时间:2013-05-03 03:50:32

标签: python networking tcp client-server

我有许多客户需要连接到服务器并维持连接一段时间(大约4小时)。我不想为每个客户端指定不同的连接端口(因为它们可能有很多)我希望它们能够连接到特定预定端口上的服务器,例如10800并让服务器接受并且保持连接但仍能从新客户端接收其他连接。有没有办法在Python中执行此操作,或者我需要重新考虑架构。

EXTRA CREDIT:执行此操作的服务器代码的Python片段会很棒!

3 个答案:

答案 0 :(得分:1)

  

我不想为每个客户端指定不同的连接端口(因为它们可能有很多)

你不需要那个。

  

我希望他们能够在特定的预定端口(例如10800)上连接到服务器并让服务器接受并维护连接,但仍然能够从新客户端接收其他连接

这就是TCP已经运作的方式。

只需创建一个侦听端口10800的套接字并接受来自它的连接。

答案 1 :(得分:0)

使用select.select()检测多个套接字上的事件,如传入连接,传入数据,传出缓冲区容量和连接错误。您可以在多个侦听套接字和单个线程的已建立连接上使用它。使用网络搜索,您当然可以找到示例代码。

答案 2 :(得分:0)

http://twistedmatrix.com/上的“Echo Server”示例就是这样做的。