Dup Ver Goto 📝

Trivial UDP Receive Example

PT2/lang/python/net/udp python net udp does not exist
To
53 lines, 106 words, 1080 chars Page 'TrivialReceive' does not exist.

Minimal

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(("0.0.0.0",5001))

try:
  while True:
    data, addr = s.recvfrom(1024)
    print(f"Got {data.decode()}")
except KeyboardInterrupt:
  print("Ctrl-C")

Threaded

#!/usr/bin/env python3
import threading
import queue
import time

q = queue.Queue()

def worker():
    while True:
        if q.empty():
          print("Empty -- sleeping")
          time.sleep(1)
          print("Done sleeping")
        else:
          while not q.empty():
            item = q.get()
            print(f'Received {len(item)} bytes in worker thread')
            t = item.decode()
            print(f"Message: {t}")
            q.task_done()

# Turn-on the worker thread.
threading.Thread(target=worker, daemon=True).start()

import socket
with socket.socket(socket.AF_INET,socket.SOCK_DGRAM) as s:
  s.bind(("",3000))
  while True:
    m = s.recv(4096)
    print(f"Received {len(m)} bytes in main thread")
    q.put(m)

# Block until all tasks are done.
q.join()
print('All work completed')