我想创建一个简单的视频流(实际上是图像流)服务器,可以管理不同的协议(TCP Push/Pull,UDP Push/Pull/Multicast)。
我设法让 TCP Push/Pull 与SocketServer.TCPServer
该类一起工作,并ThreadinMixIn
在不同的线程中处理每个连接的客户端。
但是现在我正在研究 UDP 协议,我刚刚意识到 ThreadinMixIn 每次调用handle()
每个客户端查询都会创建一个线程(因为在 UDP 中没有诸如“连接”之类的东西)。
问题是我需要为所有客户端处理同一客户端的一系列查询。我怎么能做到这一点?
我看到我可以处理的唯一方法是拥有一个(客户端地址,处理线程)列表并将每个查询发送到匹配的线程(或者如果客户端尚未发送任何线程,则创建一个新的)。有没有更简单的方法来做到这一点?
谢谢 !
PS:我不能为此使用任何外部或过于“高级”的库,因为它是一门旨在了解套接字如何工作的学校科目。