class SSReader

An internal class for reading from a socket stream. This serves as a base class for both ISocketStream and SocketStream; its purpose is to minimize redundant code between them. Do not use it directly.

Inheritance diagram

Inheritance diagram of SSReader

close() → None
getTcpHeaderSize() → int

Returns the header size for datagrams. See setTcpHeaderSize().

isClosed() → bool
receiveDatagram(dg: Datagram) → bool

Receives a datagram over the socket by expecting a little-endian 16-bit byte count as a prefix. If the socket stream is non-blocking, may return false if the data is not available; otherwise, returns false only if the socket closes.

setTcpHeaderSize(tcp_header_size: int) → None

Sets the header size for datagrams. At the present, legal values for this are 0, 2, or 4; this specifies the number of bytes to use encode the datagram length at the start of each TCP datagram. Sender and receiver must independently agree on this.