class MulticastServerUDP(DatagramProtocol): def __init__(self, ip): self.ip = ip def startProtocol(self): self.transport.joinGroup(self.ip) def datagramReceived(self, data, address): print data mcast = MulticastServerUDP('229.254.1.23') reactor.listenMulticast(9000, mcast, listenMultiple=True) mcast2 = MulticastServerUDP('229.253.1.27') reactor.listenMulticast(9000, mcast2, listenMultiple=True)
Необходимо слушать на одном порту данные по нескольким мультикаст-адресам. Все работает, но возникла проблема datagramReceived получает все пакеты, независимо от того, к какому адресу был сделан joinGroup. То есть в данном примере все пакеты выводятся по два раза. Как различить, к какой группе принадлежит пакет?