Python 扭曲多个对等点

Python 扭曲多个对等点,python,tcp,twisted,multicast,Python,Tcp,Twisted,Multicast,我目前正在使用python中的twisted,我正在尝试在多个对等方之间进行多播(每个对等方都可以发送和接收消息、发送ACK等)。我的主要观点如下: if __name__ == '__main__': serial_process_num, address = parse_args() if serial_process_num == '0': factory = PeerFactory('0', 'log') reactor.listenTC

我目前正在使用python中的twisted,我正在尝试在多个对等方之间进行多播(每个对等方都可以发送和接收消息、发送ACK等)。我的主要观点如下:

if __name__ == '__main__':
    serial_process_num, address = parse_args()

    if serial_process_num == '0':
        factory = PeerFactory('0', 'log')
        reactor.listenTCP(address[1], factory)
        reactor.listenTCP(address[1]+1, factory)

        print "Process 0 is listening @" + address[0] + " port " + str(address[1])
        print "Process 0 is listening @" + address[0] + " port " + str(address[1]+1)
    elif serial_process_num == '1':
        factory = PeerFactory('1', '')
        host, port = address
        print "Connecting to process 0 " + host + " port " + str(port)
        reactor.connectTCP(host, port, factory)
        print "Process 1 is listening @" + address[0] + " port " + str(address[1]+2)
        reactor.listenTCP(port+2, factory)
    else:
        factory = PeerFactory('2', '')
        host, port = address
        print "Connecting to process 0 " + host + " port " + str(port+1)
        reactor.connectTCP(host, port+1, factory)
        print "Connecting to process 1 " + host + " port " + str(port+2)
        reactor.connectTCP(host, port+2, factory)


    reactor.run()
我保持这个简单是因为我想理解我的错误,所以我只使用了3个对等点。我从cmd(ex py example.py 0)开始第一个用serial_process_num 0,然后是1和2。我是否正确设置了侦听器/connecttcp?每当我在这三个节点之间发送消息时,我在每个节点上只收到其中的一半。(我使用self.transport.write('example'))


在twisted中是否有通过TCPconnect进行多播的替代方法?(我正在学习krondos教程)我如何使用twisted在多个对等点之间建立多个连接?

多播是一种,这意味着你没有与TCP相同的字节流;换句话说,它是一种UDP。因此,不,你不能使用twisted或其他形式的TCP。

那么,它不是真正的多播,但我想使用e非常对等的人彼此通信(通过他们之间的连接)。但我似乎无法正确设置他们的连接。您可能会从中得到一个想法。Twisted+Autobahn WebSocket+向所有连接的对等人广播收到的消息。谢谢我找到了答案