4
以下是一個簡單的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