aik*_*ksa 7 python interface multicast twisted
在google上搜索高低之后我还没有找到以下问题的明确答案:大致遵循以下指南:http: //twistedmatrix.com/documents/10.2.0/core/howto/udp.html#auto3
如何将双绞线多播侦听器仅绑定到多播地址以及特定或所有接口上.
在查看reactor.listenMulticast时,它不为硬件接口提供抽象,只提供由IP地址表示的伪接口.我找不到只绑定多播地址的方法,例如特定接口或所有接口的224.0.0.1.任何人都可以提供更多相关信息吗?
reactor.listenMulticast
返回一个twisted.internet.udp.MulticastPort
对象。该对象拥有您正在侦听的套接字。因此,请保留reactor.listenMulticast的结果并设置适当的套接字选项(在本例中它看起来像SO.BINDTODEVICE)以及以空结尾的设备字符串。
import IN, socket, struct
udp_port = reactor.listenMulticast(8005, MulticastServerUDP())
dev = "eth0" + "\0"
udp_port.socket.setsockopt(socket.SOL_SOCKET, IN.SO_BINDTODEVICE, dev)
reactor.run()
Run Code Online (Sandbox Code Playgroud)
如果这直接通过调用公开,那就太好了,listenMulticast
但假设这有效,这将是一个非常简单的补丁。如果这可以解决您的问题,请告诉我。