2015-11-02 60 views
2

我目前正在使用python进行扭曲工作,我试图在许多对等体之间进行多播(他们每个人都可以发送和接收消息,发送消息等)。我主要如下所示:Twisted multiple peers

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 peers.I IM开始从CMD(如PY example.py第一个与serial_process_num 0 0),那么1和2.Am我正确设置了listeners/connecttcp?每当我在这三个人之间发送消息时,我在每个同伴中只收到一半消息。 (我使用self.transport.write(“示例”)

是否有通过在TCPconnect扭曲多播的替代方法?(IM以下krondos教程)和我怎样才能使多个对等体之间的多个连接用扭曲?

+1

你可以从https://github.com/crossbario/autobahn-python/blob/master/examples/twisted/websocket/broadcast/server.py得到一个想法Twisted + Autobahn WebSocket + broadcast received message给所有连接的同行。 –

+0

谢谢我想通了 – user1823812

回答

1

多播是一个datagram protocol,这意味着你没有像使用TCP一样的方式创建字节流;换句话说,它是一种UDP。所以不,你不能使用TCP,在Twisted或其他

+0

那么,它不是一个真正的组播,然后我想让每个对等体(通过它们之间的连接)相互通信。但我似乎无法正确建立他们的连接。 – user1823812