Class CServerTCPSocket

Inheritance Relationships

Base Type

  • public mrpt::system::COutputLogger

Class Documentation

class CServerTCPSocket : public mrpt::system::COutputLogger

A TCP socket that can be wait for client connections to enter. Unless otherwise noticed, operations are blocking.

Public Functions

CServerTCPSocket(unsigned short listenPort, const std::string &IPaddress = std::string("127.0.0.1"), int maxConnectionsWaiting = 50, mrpt::system::VerbosityLevel verbosityLevel = mrpt::system::LVL_INFO)

Constructor that creates the socket, performs binding, and start listening mode.

See also

isListening

Parameters:
  • listenPort – The port to bound to.

  • IPaddress – The interface to bound the socket to. By default is 127.0.0.1 for localhost, for all network interfaces use 0.0.0.0.

  • maxConnectionsWaiting – Maximum number of incoming connections waiting for “accept” before new ones are rejected. You can check if the socket has been created OK with “isListening”.

Throws:

std::exception – If there is any error creating the socket, with a textual description of the error.

~CServerTCPSocket() override

Dtor

bool isListening()

Returns true if the socket was successfully open and it’s bound to the desired port.

std::unique_ptr<CClientTCPSocket> accept(int timeout_ms = -1)

Waits for an incoming connection (indefinitely, or with a given timeout) The returned object represents the new connection, and MUST BE deleted by the user when no longer needed.

Parameters:

timeout_ms – The timeout for the waiting, in milliseconds. Set this to “-1” to disable timeout (i.e. timeout=infinite)

Returns:

The incoming connection, or nullptr on timeout or error.