接收端
import msgpack
from scapy.all import *
from multiprocessing import Process
Multicast_IP = '239.255.255.252'
Multicast_Port = '9999'
def Callback(packet):
load = packet['Raw'].load
value = msgpack.loads(load)
def func(name):
sniff(filter=f"udp and host {Multicast_IP} and port {Multicast_Port}", iface=name, count=-1, prn=Callback)
if __name__ == '__main__':
port_list = ["WLAN", '以太网']
pool = ThreadPoolExecutor(max_workers=len(port_list))
for item in port_list:
print(f"---------开始{item}网口------------")
pool.submit(func, item)
发送端
import socket
import time
import msgpack
Multicast_IP = "239.255.255.252"
Multicast_Port = 9999
def sendTo(message):
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
message = msgpack.dumps(message)
sock.sendto(message, (Multicast_IP , Multicast_Port))
sendTo({"value":"测试数据!"})