Skip to content

Instantly share code, notes, and snippets.

@remasis
Created June 8, 2015 16:35
Show Gist options
  • Save remasis/55ed4464ea581f2ae94d to your computer and use it in GitHub Desktop.
Save remasis/55ed4464ea581f2ae94d to your computer and use it in GitHub Desktop.
python udp multicast
#!/usr/bin/env python
import socket
import binascii
payload = "4141414141"
payload = binascii.unhexlify(payload)
MCAST_GRP = '224.0.0.22'
MCAST_PORT = 4444
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
try:
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
except AttributeError:
pass
sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 32)
sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_LOOP, 1)
sock.bind(('', MCAST_PORT))
#host = socket.gethostbyname(socket.gethostname())
host = '10.42.0.1'
sock.setsockopt(socket.SOL_IP, socket.IP_MULTICAST_IF, socket.inet_aton(host))
sock.setsockopt(socket.SOL_IP, socket.IP_ADD_MEMBERSHIP, socket.inet_aton(MCAST_GRP) + socket.inet_aton(host))
while 1:
try:
data, addr = sock.recvfrom(1024)
except socket.error, e:
print 'Expection'
hexdata = binascii.hexlify(data)
print 'Addr = %s' % repr(addr)
print 'Data = %s' % hexdata
sock.sendto(payload, addr)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment