背景 链接到标题 平时工作很少涉及到 Socket 相关,基本上都是 HTTP 之上的业务,最近看到 Real Python 的一篇博客,非常详细的讲解了 Python 下的 socket 编程,其中有两个示例觉得很好,帮助我理解了一些要点,记录一下。
多连接情况 链接到标题 Server 链接到标题 multiconn-server.py
#!/usr/bin/env python3 import sys import socket import selectors import types sel = selectors.DefaultSelector() def accept_wrapper(sock): conn, addr = sock.accept() # 前提条件:可读状态 print('accepted connection from', addr) conn.setblocking(False) # 置为非阻塞 data = types.SimpleNamespace(addr=addr, inb=b'', outb=b'') events = selectors.EVENT_READ | selectors.EVENT_WRITE sel.register(conn, events, data=data) # 注册事件到 select def service_connection(key, mask): sock = key.fileobj data = key.