class mrpt::comms::CServerTCPSocket

A TCP socket that can be wait for client connections to enter.

Unless otherwise noticed, operations are blocking.

#include <mrpt/comms/CServerTCPSocket.h>

class CServerTCPSocket: public mrpt::system::COutputLogger
{
public:
    // construction

    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
        );

    //
methods

    bool isListening();
    std::unique_ptr<CClientTCPSocket> accept(int timeout_ms = -1);
};

Inherited Members

public:
    // structs

    struct TMsg;

Construction

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.

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”.

std::exception

If there is any error creating the socket, with a textual description of the error.

See also:

isListening

Methods

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.