Python组播接收器连接WiFi后无法接收组播包问题求助
组播接收器WiFi连接后无法接收组播数据包求助
本人无计算机专业背景,表述可能存在疏漏,先致歉。
我开发了一款Python简单组播接收器,用于通过以太网接收电梯控制服务器的单播/组播/广播数据包。现在遇到一个异常问题:计算机连接WiFi后,组播数据包停止被接收器接收,但单播、广播数据包正常。
通过Wireshark监控以太网连接,发现组播数据包仍在传输,但接收器就是接收不到也不打印;监控WiFi连接时,发现设备向路由器发送IGMPv2协议数据包,源IP为设备IP,目的IP为接收器代码中指定的组播IP。我怀疑是WiFi连接影响了端口与组播地址的绑定,但不确定,特来求助解惑。
接收器代码如下:
import socket import struct MCAST_GRP = '239.64.0.2' MCAST_PORT = 52000 IS_ALL_GROUPS = True sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP) sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) if IS_ALL_GROUPS: # on this port, receives ALL multicast groups sock.bind(('', MCAST_PORT)) else: # on this port, listen ONLY to MCAST_GRP sock.bind((MCAST_GRP, MCAST_PORT)) mreq = struct.pack("4sl", socket.inet_aton(MCAST_GRP), socket.INADDR_ANY) sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq) while True: # For Python 3, change next line to "print(sock.recv(10240))" print sock.recv(10240)
内容的提问来源于stack exchange,提问作者BigMike
相关产品推荐
相关产品推荐

