Files
spark/tools/udp.py
T
2020-06-04 13:43:00 -04:00

30 lines
948 B
Python
Executable File

#!/usr/bin/python
import sys, os
import socket, binascii
if len(sys.argv) < 3:
print "Usage: udp.py <group> <port> <listen address>"
exit(0)
mcast_grp = sys.argv[1]
mcast_port = int(sys.argv[2])
listen_addr = len(sys.argv) == 4 and sys.argv[3] or '0.0.0.0'
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 32)
sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_LOOP, 1)
sock.bind((mcast_grp, mcast_port))
host = listen_addr
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 "error", e
hexdata = binascii.hexlify(data)
print 'Data = %s' % hexdata