Python:多个连接

时间:2013-05-20 15:10:35

标签: python sockets

我在Python守护程序上工作,该守护程序连接到多个“客户端”并监听。

重要提示:对于所有客户端,守护程序的端口必须相同。

class UDPReader(asyncore.dispatcher):
        def __init__(self, local, remote, parser):
                asyncore.dispatcher.__init__(self)
                self.parser = parser
                self.create_socket(socket.AF_INET, socket.SOCK_DGRAM)
                self.bind(local)
                self.connect(remote)

现在我的问题是,我如何能够同时连接多个“客户端”并使用相同的端口收听?有没有办法看到数据来自哪个客户端?

1 个答案:

答案 0 :(得分:1)

请参阅socket.recvfrom() - 返回值为一对(string, address),其中address是发件人的地址,您可以将其传递给后续的socket.sendto()来电。

由于UDP connect()没有真正设置任何连接,您仍然可以从任何地方发送和接收;它真正做的就是在内部设置套接字的默认目标地址,让您使用send()write(),而不是每次都明确传递地址。