我有一个python TCP服务器,用于侦听传入的数据请求。只要有人连接到它,服务器就会开始向该客户端提供数据。它所服务的数据通过某些端口上的UDP传入。
问题是,如何将来自UDP端口的相同数据提供给潜在的多个tcp客户端?
一些背景信息: 1.创建一个线程来监听传入的UDP数据。 2.每次新的TCP客户端连接时都会创建一个新线程。
我查看了python Queue包,但似乎这是点对点的,并且限制了我的目标。
有什么想法吗?
答案 0 :(得分:0)
您可以隐藏类中的点对点连接,例如:
from multiprocessing import Queue
from threading import Lock
class BroadcastChannel():
def __init__(self):
self._queues = []
self.lock = Lock()
def send(self, item):
self.lock.acquire()
for q in self._queues:
q.put(item)
self.lock.release()
def fork(self):
q = Queue()
self.lock.acquire()
self._queues.append(q)
self.lock.release()
return q