Poco::Net

class ServerSocket

Library: Net
Package: Sockets
Header: Poco/Net/ServerSocket.h

Description

This class provides an interface to a TCP server socket.

Inheritance

Direct Base Classes: Socket

All Base Classes: Socket

Known Derived Classes: SecureServerSocket

Member Summary

Member Functions: acceptConnection, bind, bind6, fromFileDescriptor, listen, operator =

Inherited Functions: address, available, close, destroyBufVec, error, fromFileDescriptor, getBlocking, getError, getKeepAlive, getLinger, getNoDelay, getOOBInline, getOption, getReceiveBufferSize, getReceiveTimeout, getReuseAddress, getReusePort, getSendBufferSize, getSendTimeout, impl, init, isDatagram, isNull, isRaw, isStream, lastError, lastErrorDesc, makeBufVec, makeBuffer, operator !=, operator <, operator <=, operator =, operator ==, operator >, operator >=, peerAddress, poll, secure, select, setBlocking, setKeepAlive, setLinger, setNoDelay, setOOBInline, setOption, setReceiveBufferSize, setReceiveTimeout, setReuseAddress, setReusePort, setSendBufferSize, setSendTimeout, sockfd, supportsIPv4, supportsIPv6, type

Constructors

ServerSocket

ServerSocket();

Creates a server socket.

The server socket must be bound to an address and put into listening state.

ServerSocket

ServerSocket(
    const Socket & socket
);

Creates the ServerSocket with the SocketImpl from another socket. The SocketImpl must be a ServerSocketImpl, otherwise an InvalidArgumentException will be thrown.

ServerSocket

ServerSocket(
    const SocketAddress & address,
    int backlog = 64
);

Creates a server socket, binds it to the given address and puts it in listening state.

After successful construction, the server socket is ready to accept connections.

ServerSocket

ServerSocket(
    Poco::UInt16 port,
    int backlog = 64
);

Creates a server socket, binds it to the given port and puts it in listening state.

After successful construction, the server socket is ready to accept connections.

ServerSocket protected

ServerSocket(
    SocketImpl * pImpl,
    bool
);

The bool argument is to resolve an ambiguity with another constructor (Microsoft Visual C++ 2005)

Destructor

~ServerSocket virtual

virtual ~ServerSocket();

Destroys the ServerSocket.

Member Functions

acceptConnection virtual

virtual StreamSocket acceptConnection(
    SocketAddress & clientAddr
);

Gets the next completed connection from the socket's completed connection queue.

If the queue is empty, waits until a connection request completes.

Returns a new TCP socket for the connection with the client.

The client socket's address is returned in clientAddr.

acceptConnection virtual

virtual StreamSocket acceptConnection();

Gets the next completed connection from the socket's completed connection queue.

If the queue is empty, waits until a connection request completes.

Returns a new TCP socket for the connection with the client.

bind virtual

virtual void bind(
    const SocketAddress & address,
    bool reuseAddress = false
);

Binds a local address to the socket.

This is usually only done when establishing a server socket. TCP clients should not bind a socket to a specific address.

If reuseAddress is true, sets the SO_REUSEADDR socket option.

bind virtual

virtual void bind(
    const SocketAddress & address,
    bool reuseAddress,
    bool reusePort
);

Binds a local address to the socket.

This is usually only done when establishing a server socket. TCP clients should not bind a socket to a specific address.

If reuseAddress is true, sets the SO_REUSEADDR socket option.

If reuseAddress is true, sets the SO_REUSEPORT socket option.

bind virtual

virtual void bind(
    Poco::UInt16 port,
    bool reuseAddress = false
);

Binds a local port to the socket.

This is usually only done when establishing a server socket.

If reuseAddress is true, sets the SO_REUSEADDR socket option.

bind virtual

virtual void bind(
    Poco::UInt16 port,
    bool reuseAddress,
    bool reusePort
);

Binds a local port to the socket.

This is usually only done when establishing a server socket.

If reuseAddress is true, sets the SO_REUSEADDR socket option.

If reusePort is true, sets the SO_REUSEPORT socket option.

bind6 virtual

virtual void bind6(
    const SocketAddress & address,
    bool reuseAddress = false,
    bool ipV6Only = false
);

Binds a local IPv6 address to the socket.

This is usually only done when establishing a server socket. TCP clients should not bind a socket to a specific address.

If reuseAddress is true, sets the SO_REUSEADDR socket option.

The given address must be an IPv6 address. The IPPROTO_IPV6/IPV6_V6ONLY option is set on the socket according to the ipV6Only parameter.

If the library has not been built with IPv6 support, a Poco::NotImplementedException will be thrown.

bind6 virtual

virtual void bind6(
    const SocketAddress & address,
    bool reuseAddress,
    bool reusePort,
    bool ipV6Only
);

Binds a local IPv6 address to the socket.

This is usually only done when establishing a server socket. TCP clients should not bind a socket to a specific address.

If reuseAddress is true, sets the SO_REUSEADDR socket option.

If reusePort is true, sets the SO_REUSEPORT socket option.

The given address must be an IPv6 address. The IPPROTO_IPV6/IPV6_V6ONLY option is set on the socket according to the ipV6Only parameter.

If the library has not been built with IPv6 support, a Poco::NotImplementedException will be thrown.

bind6 virtual

virtual void bind6(
    Poco::UInt16 port,
    bool reuseAddress = false,
    bool ipV6Only = false
);

Binds a local IPv6 port to the socket.

This is usually only done when establishing a server socket.

If reuseAddress is true, sets the SO_REUSEADDR socket option.

The given address must be an IPv6 address. The IPPROTO_IPV6/IPV6_V6ONLY option is set on the socket according to the ipV6Only parameter.

If the library has not been built with IPv6 support, a Poco::NotImplementedException will be thrown.

bind6 virtual

virtual void bind6(
    Poco::UInt16 port,
    bool reuseAddress,
    bool reusePort,
    bool ipV6Only
);

Binds a local IPv6 port to the socket.

This is usually only done when establishing a server socket.

If reuseAddress is true, sets the SO_REUSEADDR socket option.

If reusePort is true, sets the SO_REUSEPORT socket option. The given address must be an IPv6 address. The IPPROTO_IPV6/IPV6_V6ONLY option is set on the socket according to the ipV6Only parameter.

If the library has not been built with IPv6 support, a Poco::NotImplementedException will be thrown.

fromFileDescriptor static

static ServerSocket fromFileDescriptor(
    int fd
);

listen virtual

virtual void listen(
    int backlog = 64
);

Puts the socket into listening state.

The socket becomes a passive socket that can accept incoming connection requests.

The backlog argument specifies the maximum number of connections that can be queued for this socket.

operator =

ServerSocket & operator = (
    const Socket & socket
);

Assignment operator.

Releases the socket's SocketImpl and attaches the SocketImpl from the other socket and increments the reference count of the SocketImpl.