earwax.networking module¶
Provides classes for networking.
-
exception
earwax.networking.AlreadyConnected¶ Bases:
earwax.networking.NetworkingConnectionErrorAlready connected.
Attempted to call
connect()on an already connectedNetworkConnectioninstance.
-
exception
earwax.networking.AlreadyConnecting¶ Bases:
earwax.networking.NetworkingConnectionErrorAlready connecting.
An attempt was made to call
connect()on anNetworkConnectioninstance which is already attempting to connect.
-
class
earwax.networking.ConnectionStates¶ Bases:
enum.EnumVarious states that
NetworkConnectionclasses can be in.Variables: - not_connected – The connection’s
connect()method has not yet been called. - connecting – The connection is still being established.
- connected – A connection has been established.
- disconnected – This connection is no longer connected (but was at some point).
- error – There was an error establishing a connection.
-
connected= 2¶
-
connecting= 1¶
-
disconnected= 3¶
-
error= 4¶
-
not_connected= 0¶
- not_connected – The connection’s
-
class
earwax.networking.NetworkConnection¶ Bases:
earwax.mixins.RegisterEventMixinRepresents a single outbound connection.
You can read data by providing an event handler for
on_data(), and write data with thesend()method.Variables: - socket – The raw socket this instance uses for communication.
- state – The state this connection is in.
-
close() → None¶ Close this connection.
Disconnect
self.socket, and callshutdown()to clean up..
-
connect(hostname: str, port: int) → None¶ Open a new connection.
Connect
self.socketto the provided hostname and port.Parameters: - hostname – The hostname to connect to.
- port – The port to connect on.
-
on_connect() → None¶ Deal with the connection being opened.
This event is dispatched when text is first received from
self.socket, since I’ve not found a better way to know when the socket is properly open.
-
on_data(data: bytes) → None¶ Handle incoming data.
An event which is dispatched whenever data is received from
self.socket.
-
on_disconnect() → None¶ Handle the connection closing.
Dispatched when
self.sockethas disconnected.A socket disconnect is defined by the socket in question receiving an empty string.
-
on_error(e: Exception) → None¶ Handle a connection error.
This event is dispatched when there is an error establishing a connection.
Parameters: e – The exception that was raised.
-
poll(dt: float) → None¶ Check if any data has been received.
Poll
self.socketfor anything that has been received since the last time this function ran.This function will be scheduled by
connect(), and unscheduled byshutdown(), when no more data is received from the socket.If this connection is not connected yet (I.E.: you called this function yourself), then
earwax.NotConnectedYetwill be raised.
-
send(data: bytes) → None¶ Send some data over this connection.
Sends some data to
self.socket.If this object is not connected yet, then
NotConnectedYetwill be raised.Parameters: data – The data to send to the socket.
Must end with
'\r\n'.
-
shutdown() → None¶ Shutdown this server.
Unschedule
self.poll, setself.sockettoNone, and resetself.statetoearwax.ConnectionStates.not_connected.
-
exception
earwax.networking.NetworkingConnectionError¶ Bases:
ExceptionBase class for connection errors.
-
exception
earwax.networking.NotConnectedYet¶ Bases:
earwax.networking.NetworkingConnectionErrorTried to send data on a connection which is not yet connected.