def Connect(self):
self.socket_mode = UDP_MODE
self.mac = uuid.getnode()
# Set up UDP receiver.
self.udp_rx_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
self.udp_rx_sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# Pack multicast group structure correctly.
mreq = struct.pack('=4sl', socket.inet_aton(MCAST_GRP),socket.INADDR_ANY)
# Request access to multicast group.
self.udp_rx_sock.setsockopt(socket.IPPROTO_IP,
socket.IP_ADD_MEMBERSHIP, mreq)
# Bind to all intfs.
self.udp_rx_sock.bind(('', MCAST_PORT))
self.udp_rx_sock.settimeout(TIMEOUT)
# Set up UDP transmitter.
self.udp_tx_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
self.udp_tx_sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 255)
# Get the MAC address of the local adapter.
msg = bytearray(8)
struct.pack_into('<Q', msg, 0, int(self.mac))
self.local_mac = ''.join('{:02x}'.format(x) for x in msg[0:6])
logging.debug('MAC Addr: %s', self.local_mac)
评论列表
文章目录