An internal class for reading from a socket stream. This serves as a base class for both
SocketStream; its purpose is to minimize redundant code between them. Do not use it directly.
virtual void close(void) = 0
int get_tcp_header_size(void) const
Returns the header size for datagrams. See
virtual bool is_closed(void) = 0
bool receive_datagram(Datagram &dg)
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.
void set_tcp_header_size(int tcp_header_size)
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.
- virtual void close(void) = 0