libsocket
Classes | Functions | Variables
libsocket Namespace Reference

Contains libsocket elements. More...

Classes

class  dgram_client_socket
 Represents a generic "client" datagram socket, i.e. a datagram socket which can be connected. More...
 
class  dgram_over_stream
 Wraps a stream socket and provides a message-based API on top of it. More...
 
class  epollset
 Class abstracting calls to the epoll API of Linux. More...
 
class  inet_dgram
 Base class for UDP/IP sockets. More...
 
class  inet_dgram_client
 Using UDP/IP easy as never before. Class for connectable datagram sockets in the INET domain. You may connect this sockets to permanently associate a peer to which all data is sent and from which all data is received when using the functions defined in class dgram_client_socket More...
 
class  inet_dgram_server
 Plain UDP sockets. More...
 
class  inet_socket
 Internet-socket base class This class provides some fields for all internet sockets, like remote host and port and the used protocol version. More...
 
class  inet_stream
 Provides TCP/IP client sockets. This class is the most used socket class in libsocket++. It provides plain TCP client sockets which can be used for almost everything. More...
 
class  inet_stream_server
 TCP server socket (passive TCP socket) More...
 
class  selectset
 selectset provides a simple abstraction over – contrary to its name – poll(2). More...
 
class  socket
 socket is the base class of every other libsocket++ object. More...
 
struct  socket_exception
 This class is instantiated and thrown when an error occurs. If there's an error somewhere in libsocket++, the function in which the error occurs /always/ throws a socket_exception object showing why the error occurred. More...
 
class  stream_client_socket
 Generic socket for active stream sockets (TCP client sockets, UNIX Stream clients) More...
 
class  unix_dgram
 Generic class for all UNIX datagram (DGRAM) sockets, implementing i/o functions. More...
 
class  unix_dgram_client
 Class for UNIX datagram sockets. More...
 
class  unix_dgram_server
 Provides an interface to UNIX-domain datagram sockets. More...
 
class  unix_socket
 Base class for all UNIX socket classes. More...
 
class  unix_stream_client
 Provides an interface for working with UNIX STREAM sockets. More...
 
class  unix_stream_server
 Socket class for UNIX-domain STREAM socket server. More...
 

Functions

void encode_uint32 (uint32_t n, char *dst)
 
uint32_t decode_uint32 (const char *src)
 
int highestfd (const std::vector< int > &v)
 Utility function to find the highest number in a vector (typically, the highest file descriptor) More...
 
dgram_client_socketoperator>> (dgram_client_socket &sock, string &dest)
 Receive data from connected datagram socket. More...
 
dgram_client_socketoperator<< (dgram_client_socket &sock, const char *str)
 Send data to connected peer. More...
 
dgram_client_socketoperator<< (dgram_client_socket &sock, const string &str)
 Send data to connected peer. More...
 
stream_client_socketoperator>> (stream_client_socket &sock, string &dest)
 Receive data from socket to a string. More...
 
stream_client_socketoperator<< (stream_client_socket &sock, const char *str)
 Send data to socket. More...
 
stream_client_socketoperator<< (stream_client_socket &sock, const string &str)
 Send data to socket. More...
 

Variables

const size_t FRAMING_PREFIX_LENGTH = 4
 

Detailed Description

Contains libsocket elements.

All libsocket classes etc are defined within the namespace "libsocket".

Function Documentation

◆ highestfd()

int libsocket::highestfd ( const std::vector< int > &  v)

Utility function to find the highest number in a vector (typically, the highest file descriptor)

Definition at line 42 of file select.cpp.

◆ operator>>() [1/2]

dgram_client_socket& libsocket::operator>> ( dgram_client_socket sock,
string &  dest 
)

Receive data from connected datagram socket.

If a datagram socket is connected, you may receive data from it using stream-like functions.

Parameters
sockThe socket to receive data from
destThe string to write data to. This string has to be resized to the number of bytes you wish to receive.

Definition at line 95 of file dgramclient.cpp.

◆ operator<<() [1/4]

dgram_client_socket& libsocket::operator<< ( dgram_client_socket sock,
const char *  str 
)

Send data to connected peer.

Usage: socket << "Abcde";

Definition at line 155 of file dgramclient.cpp.

◆ operator<<() [2/4]

dgram_client_socket& libsocket::operator<< ( dgram_client_socket sock,
const string &  str 
)

Send data to connected peer.

Usage: socket << "Abcde";

Definition at line 180 of file dgramclient.cpp.

◆ operator>>() [2/2]

stream_client_socket& libsocket::operator>> ( stream_client_socket sock,
string &  dest 
)

Receive data from socket to a string.

Receives n bytes of data (where n == dest.size()) and writes it to a string.

Application: infix; sock >> dest1 [>> dest2...];

Parameters
sockthe socket.
destthe destination string. Its length determines how much data is received.
Returns
the same socket which was given as parameter. (See "Application")

The dest string is resized to 0 if the socket is non-blocking and no data could be received.

Definition at line 118 of file streamclient.cpp.

◆ operator<<() [3/4]

stream_client_socket& libsocket::operator<< ( stream_client_socket sock,
const char *  str 
)

Send data to socket.

Sends data to socket using stream-like syntax:

socket << "Hello " << "World" << "\n";

Important: Only overloaded for C and C++ strings, not for numbers, chars etc.!

Parameters
sockA socket.
strData to be sent; do a static_cast<>() to send raw data.

Definition at line 174 of file streamclient.cpp.

◆ operator<<() [4/4]

stream_client_socket& libsocket::operator<< ( stream_client_socket sock,
const string &  str 
)

Send data to socket.

Sends data to socket using stream-like syntax:

socket << "Hello " << "World" << "\n";

Important: Only overloaded for C and C++ strings, not for numbers, chars etc.!

Parameters
sockA socket.
strData.

Definition at line 212 of file streamclient.cpp.