Poco::Net

class SecureServerSocketImpl

Library: NetSSL_OpenSSL
Package: SSLSockets
Header: Poco/Net/SecureServerSocketImpl.h

Description

Inheritance

Direct Base Classes: ServerSocketImpl

All Base Classes: ServerSocketImpl, SocketImpl, Poco::RefCountedObject

Member Summary

Member Functions: acceptConnection, bind, bind6, close, connect, connectNB, context, listen, receiveBytes, receiveFrom, secure, sendBytes, sendTo, sendUrgent

Inherited Functions: acceptConnection, address, available, bind, bind6, checkBrokenTimeout, close, connect, connectNB, duplicate, error, fcntl, getBlocking, getBroadcast, getError, getKeepAlive, getLinger, getNoDelay, getOOBInline, getOption, getRawOption, getReceiveBufferSize, getReceiveTimeout, getReuseAddress, getReusePort, getSendBufferSize, getSendTimeout, init, initSocket, initialized, ioctl, lastError, listen, peerAddress, poll, receiveBytes, receiveFrom, referenceCount, release, reset, secure, sendBytes, sendFile, sendTo, sendUrgent, setBlocking, setBroadcast, setKeepAlive, setLinger, setNoDelay, setOOBInline, setOption, setRawOption, setReceiveBufferSize, setReceiveTimeout, setReuseAddress, setReusePort, setSendBufferSize, setSendTimeout, shutdown, shutdownReceive, shutdownSend, socketError, sockfd, type, useFileDescriptor

Constructors

SecureServerSocketImpl

SecureServerSocketImpl(
    Context::Ptr pContext
);

Creates the SecureServerSocketImpl using the given SSL context object.

Destructor

~SecureServerSocketImpl protected virtual

~SecureServerSocketImpl();

Destroys the SecureServerSocketImpl.

Member Functions

acceptConnection virtual

SocketImpl * acceptConnection(
    SocketAddress & clientAddr
);

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

bind virtual

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

Bind 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

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

Bind 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 reusePort is true, sets the SO_REUSEPORT socket option.

bind6 virtual

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

Bind 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

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

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

close virtual

void close();

Close the socket.

connect virtual

void connect(
    const SocketAddress & address
);

Not supported by this kind of socket.

Throws a Poco::InvalidAccessException.

connect virtual

void connect(
    const SocketAddress & address,
    const Poco::Timespan & timeout
);

Not supported by this kind of socket.

Throws a Poco::InvalidAccessException.

connectNB virtual

void connectNB(
    const SocketAddress & address
);

Not supported by this kind of socket.

Throws a Poco::InvalidAccessException.

context inline

Context::Ptr context() const;

Returns the SSL context used by this socket.

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

receiveBytes virtual

int receiveBytes(
    void * buffer,
    int length,
    int flags = 0
);

Not supported by this kind of socket.

Throws a Poco::InvalidAccessException.

receiveFrom virtual

int receiveFrom(
    void * buffer,
    int length,
    SocketAddress & address,
    int flags = 0
);

Not supported by this kind of socket.

Throws a Poco::InvalidAccessException.

secure virtual

bool secure() const;

Returns true iff the socket's connection is secure (using SSL or TLS).

sendBytes virtual

int sendBytes(
    const void * buffer,
    int length,
    int flags = 0
);

Not supported by this kind of socket.

Throws a Poco::InvalidAccessException.

sendTo virtual

int sendTo(
    const void * buffer,
    int length,
    const SocketAddress & address,
    int flags = 0
);

Not supported by this kind of socket.

Throws a Poco::InvalidAccessException.

sendUrgent virtual

void sendUrgent(
    unsigned char data
);

Not supported by this kind of socket.

Throws a Poco::InvalidAccessException.