MCPcopy Create free account
hub / github.com/RT-Thread/env-windows / receiver

Function receiver

tools/python-3.11.9-amd64/Tools/demo/mcast.py:51–78  ·  view source on GitHub ↗
(group)

Source from the content-addressed store, hash-verified

49
50
51def receiver(group):
52 # Look up multicast group address in name server and find out IP version
53 addrinfo = socket.getaddrinfo(group, None)[0]
54
55 # Create a socket
56 s = socket.socket(addrinfo[0], socket.SOCK_DGRAM)
57
58 # Allow multiple copies of this program on one machine
59 # (not strictly needed)
60 s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
61
62 # Bind it to the port
63 s.bind(('', MYPORT))
64
65 group_bin = socket.inet_pton(addrinfo[0], addrinfo[4][0])
66 # Join group
67 if addrinfo[0] == socket.AF_INET: # IPv4
68 mreq = group_bin + struct.pack('=I', socket.INADDR_ANY)
69 s.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq)
70 else:
71 mreq = group_bin + struct.pack('@I', 0)
72 s.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_JOIN_GROUP, mreq)
73
74 # Loop, printing any data we receive
75 while True:
76 data, sender = s.recvfrom(1500)
77 while data[-1:] == '\0': data = data[:-1] # Strip trailing \0's
78 print(str(sender) + ' ' + repr(data))
79
80
81if __name__ == '__main__':

Callers 1

mainFunction · 0.85

Calls 8

strFunction · 0.85
socketMethod · 0.80
setsockoptMethod · 0.80
printFunction · 0.50
getaddrinfoMethod · 0.45
bindMethod · 0.45
packMethod · 0.45
recvfromMethod · 0.45

Tested by

no test coverage detected