UDPMocker/UdpListener.py

20 lines
770 B
Python

import socket
import struct
def start_server(ip, port):
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # Enable port reusage
server_socket.bind(('', port)) # Bind to the port, not the multicast IP
print(f"UDP server listening on {ip}:{port}")
# Join the multicast group
mreq = struct.pack("4sl", socket.inet_aton(ip), socket.INADDR_ANY)
server_socket.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq)
while True:
data, addr = server_socket.recvfrom(1024) # buffer size is 1024 bytes
print(f"received message: {data} from {addr}")
if __name__ == "__main__":
start_server("239.1.2.3", 1234)