Skip to content

Instantly share code, notes, and snippets.

@rastr-0
Created November 12, 2025 22:46
Show Gist options
  • Select an option

  • Save rastr-0/7fe86f32475fb3d3b3ea25d820b5cf60 to your computer and use it in GitHub Desktop.

Select an option

Save rastr-0/7fe86f32475fb3d3b3ea25d820b5cf60 to your computer and use it in GitHub Desktop.
A simple example of selector usage in Python
import socket
import selectors
sel = selectors.DefaultSelector()
def accept_connection(server_sock):
conn, addr = server_sock.accept()
print(f"Accepted connection from {conn} | {addr}");
conn.setblocking(False);
sel.register(conn, selectors.EVENT_READ, read_data)
def read_data(conn):
data = conn.recv(1024)
if data:
print(f"Recieved: {data.decode().strip()}")
conn.sendall(b"pam pam")
else:
print("Closing connection")
sel.unregister(conn)
conn.close()
server_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_sock.bind(("localhost", 7777))
server_sock.listen()
server_sock.setblocking(False)
sel.register(server_sock, selectors.EVENT_READ, accept_connection)
print("Server running on localhost:7777")
while True:
events = sel.select(timeout=None)
for key, mask in events:
callback = key.data
callback(key.fileobj)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment