Skip to content

Instantly share code, notes, and snippets.

@VaguinerG
Forked from Manouchehri/reply-to-empty-udp.py
Last active November 21, 2024 14:33
Show Gist options
  • Save VaguinerG/b5cdf5fdabb0c79837e8f94866fb09a3 to your computer and use it in GitHub Desktop.
Save VaguinerG/b5cdf5fdabb0c79837e8f94866fb09a3 to your computer and use it in GitHub Desktop.
Simple Micropython UDP echo server
import socket, _thread
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_address = '0.0.0.0'
server_port = 31337
sock_addr = socket.getaddrinfo(server_address, server_port)[0][-1]
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.bind(sock_addr)
print(f'Listening on {server_address}:{server_port}')
def handle_client(payload, client_address):
port = int.from_bytes(client_address[2:4], 'big')
ip = '.'.join(str(b) for b in client_address[4:8])
print(f"Received: '{payload.decode()}' from: {ip}:{port}")
sock.sendto(payload, client_address)
while True:
_thread.start_new_thread(handle_client, (sock.recvfrom(1024)))
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_address = '0.0.0.0'
server_port = 31337
sock_addr = socket.getaddrinfo(server_address, server_port)[0][-1]
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.bind(sock_addr)
print(f'Listening on {server_address}:{server_port}')
while True:
payload, client_address = sock.recvfrom(1024)
#This is for ipv4 (INET) only
port = int.from_bytes(client_address[2:4], 'big')
ip = '.'.join(str(b) for b in client_address[4:8])
print(f"Received from: {ip}:{port}")
sock.sendto(payload, client_address)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment