import socket ,struct,time# 組播地址和端口號
MCAST_GRP = '239.0.0.1'
MCAST_PORT = 8888 # 創建UDP socket對象
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP) # 綁定socket對象到本地端口號
# sock.bind((MCAST_GRP, MCAST_PORT)) # 加入組播組
mreq = struct.pack("4sl", socket.inet_aton(MCAST_GRP), socket.INADDR_ANY) # 使用INADDR_ANY來指定任何網絡接口
sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq) # 發送組播消息
message = b'Hello, multicast!'
sock.sendto(message, (MCAST_GRP, MCAST_PORT))
print('aa')
cnt = 0
# 接收組播消息
while True: message = 'Hello, zym!' +str(cnt)print(message)message=message.encode('gbk')cnt = cnt+1sock.sendto(message, (MCAST_GRP, MCAST_PORT)) time.sleep(1)#data, addr = sock.recvfrom(1024) #print('Received message:', data)
實測wifi環境中1發兩收,1s發送一次。接收端的丟包率很嚴重。