在Python中发送和接收IPv6链接本地多播UDP数据报?
问题描述:
以下是一个简单的IPv4 UDP广播,然后在所有接口上进行侦听。在Python中发送和接收IPv6链接本地多播UDP数据报?
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, True)
sock.bind(("", 1337))
sock.sendto("hello world", ("255.255.255.255", 1337))
while True:
data, addr = sock.recvfrom(0x100)
print "received from {0}: {1!r}".format(addr, data)
我想调整它以发送和接收IPv4和IPv6。
我周围戳和读出尽我所能,相信下面的大致我需要走的路线:
- 创建IPv6插槽。
- 将套接字添加到链接或站点本地多播组。
- 将UDP数据包发送到正在使用的组的多播地址。
更多信息我的是我可能需要绑定到几个接口,并告诉套接字使用setsockopt()
它也应该接收多播数据包。最后,可以全面使用getaddrinfo()
,以优雅地将其“退回”到IPv6不可用的IPv4。
我有很多实现,但主要在多播部分。 Python中的完整代码示例,或所需常量和地址的生动描述是首选。
这不适合我。见http://stackoverflow.com/questions/6631891/problem-with-python-multicast-demo-code – 2011-07-09 00:34:54
@Johny_M链接已死亡。 – suzanshakya 2012-05-18 10:50:21
也不适合我。是否有更多的双栈多路广播监听器? – enrm 2016-07-20 14:24:54