Commit 703a9bf0 authored by Kirill Smelkov's avatar Kirill Smelkov Committed by Léo-Paul Géneau

.

parent 670fe84f
...@@ -8,6 +8,7 @@ import sys, time ...@@ -8,6 +8,7 @@ import sys, time
from socket import socket, AF_INET, SOCK_DGRAM, IPPROTO_UDP, SOL_SOCKET, \ from socket import socket, AF_INET, SOCK_DGRAM, IPPROTO_UDP, SOL_SOCKET, \
SO_REUSEADDR, IPPROTO_IP, IP_ADD_MEMBERSHIP, IP_MULTICAST_TTL, IP_MULTICAST_LOOP, \ SO_REUSEADDR, IPPROTO_IP, IP_ADD_MEMBERSHIP, IP_MULTICAST_TTL, IP_MULTICAST_LOOP, \
inet_aton, INADDR_ANY inet_aton, INADDR_ANY
import socket as net
from struct import pack from struct import pack
from golang import b, u from golang import b, u
...@@ -37,10 +38,18 @@ def mjoin_rx(group, port): ...@@ -37,10 +38,18 @@ def mjoin_rx(group, port):
sk = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP) sk = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)
sk.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) sk.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
sk.bind((group, port)) #sk.bind((group, port))
sk.bind(('', port)) # XXX and later IP_MULTICAST_ALL=0 ?
# join the group (for rx)
mreq = pack("4sl", inet_aton(group), INADDR_ANY) ## join the group (for rx)
#mreq = pack("4sl", inet_aton(group), INADDR_ANY)
#sk.setsockopt(IPPROTO_IP, IP_ADD_MEMBERSHIP, mreq)
# join the group on all interfaces
for ifidx, ifname in net.if_nameindex():
print("joining %s @ [%d]%s" % (group, ifidx, ifname))
mreq = pack("4sii", inet_aton(group), INADDR_ANY, ifidx)
#print(repr(mreq), len(mreq))
sk.setsockopt(IPPROTO_IP, IP_ADD_MEMBERSHIP, mreq) sk.setsockopt(IPPROTO_IP, IP_ADD_MEMBERSHIP, mreq)
return sk return sk
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment