cable_club.network package

Submodules

Module contents

Manage connections.

class cable_club.network.Client(address: tuple[int, int])[source]

Bases: object

Represent a client.

class cable_club.network.Server(config: Config)[source]

Bases: object

Model the server’s logic.

connect(s_connecting: socket, s_finding: socket) None[source]

Tell two clients about each other’s existence.

disconnect(socket: socket, reason: str = 'unknown error') None[source]

Close a client’s connection.

handle_error(socket: socket) None[source]

Handle a single error socket.

handle_errors(sockets: list[socket]) None[source]

Handle all error sockets.

maybe_reload_rules() None[source]

Check the rules folder for updates.

This happens every config.rules_refresh_rate seconds (approx).

read_all(sockets: list[socket]) None[source]

Read from all sockets.

read_from(socket: socket) None[source]

Read from a single socket.

run() None[source]

Execute the server’s logic (blocking busy loop).

select() tuple[list[socket], list[socket], list[socket]][source]

Thin wrapper on top of select.

Collects all readers and writers and hands them off to select.select().

write_server_rules(writer: Writer) None[source]

Dump server’s rules into a writer.

write_to(socket: socket) None[source]

Write to a single socket.

write_to_all(sockets: list[socket]) None[source]

Write to all sockets.