Hyppää sisältöön

Ei vielä käännetty

Tätä sivua ei ole vielä käännetty suomeksi, joten se näytetään englanniksi. Auta kääntämään

socketserver Module

The socketserver module provides classes for writing network servers, supporting both synchronous and asynchronous request handlers.

Complexity Reference

Operation Time Space Notes
Server creation O(1) + network latency O(1) Bind/listen; network setup dominates
Handle request O(n) O(n) n = request size
Serve loop Varies Varies Blocking accept + per-request handling

Creating Network Servers

TCP Server

import socketserver

class MyHandler(socketserver.StreamRequestHandler):
    def handle(self):
        """Handle client request - O(n)"""
        # Read from connection
        data = self.rfile.readline()
        print(f"Received: {data.decode()}")

        # Send response
        self.wfile.write(b"Echo: " + data)

# Create server - O(1)
with socketserver.TCPServer(("localhost", 8000), MyHandler) as server:
    # Serve - blocking accept + per-request handling
    server.serve_forever()

Multi-threaded Server

import socketserver

class MyHandler(socketserver.StreamRequestHandler):
    def handle(self):
        """Handle - O(n)"""
        data = self.rfile.readline()
        self.wfile.write(b"Response")

# Multi-threaded - O(1) setup
server = socketserver.ThreadingTCPServer(
    ("localhost", 8000),
    MyHandler
)

# Serve - blocking accept + per-request handling
server.serve_forever()