libcommonc++
0.7
|
A base class for network sockets. More...
#include <Socket.h++>
Public Member Functions | |
virtual | ~Socket () |
Destructor. More... | |
virtual void | init () |
Initialize the socket. More... | |
virtual void | connect (const String &addr, uint16_t port) |
Connect the socket to a remote endpoint. More... | |
virtual void | connect (const SocketAddress &addr) |
Connect the socket to a remote endpoint. More... | |
virtual void | shutdown () |
Shut down the socket. More... | |
void | setTimeout (timespan_ms_t timeout) |
Set the timeout for the socket. More... | |
void | setReceiveBufSize (size_t size) |
Set the size of the socket's internal receive buffer. More... | |
size_t | getReceiveBufSize () const |
Get the size of the socket's internal receive buffer. More... | |
void | setSendBufSize (size_t size) |
Set the size of the socket's internal send buffer. More... | |
size_t | getSendBufSize () const |
Get the size of the socket's internal send buffer. More... | |
void | setLingerTime (timespan_s_t timeout) |
Set the linger time for the socket. More... | |
timespan_s_t | getLingerTime () const |
Get the linger time for the socket. More... | |
void | setReuseAddress (bool enable) |
Enable or disable the SO_REUSEADDR option on the socket. More... | |
bool | getReuseAddress () const |
Determine if the SO_REUSEADDR option is enabled or disabled. More... | |
void | setKeepAlive (bool enable) |
Enable or disable the SO_KEEPALIVE option on the socket. More... | |
bool | getKeepAlive () |
Determine if the SO_KEEPALIVE option is enabled or disabled. More... | |
void | setTCPDelay (bool enable) |
Enable or disable the Nagle algorithm for send coalescing. More... | |
bool | getTCPDelay () |
Determine if the Nagle algorithm is enabled or disabled. More... | |
bool | isInitialized () const |
Determine if the socket has been initialized. More... | |
bool | isConnected () const |
Determine if the socket is connected. More... | |
NetProtocol | getType () const |
Get the socket type. More... | |
const SocketAddress & | getLocalAddress () const |
Get the address of the local end of the socket. More... | |
const SocketAddress & | getRemoteAddress () const |
Get the address of the remote (peer) end of the socket. More... | |
Protected Types | |
enum | IOWaitMode { WaitWrite, WaitRead } |
Protected Member Functions | |
Socket (NetProtocol type=ProtoTCP) | |
Construct a new Socket of the specified type. More... | |
SocketHandle | getSocketHandle () const |
Get the underlying socket handle for this socket. More... | |
void | waitForIO (IOWaitMode mode) |
Wait for the socket to become ready for reading or writing. More... | |
Protected Attributes | |
NetProtocol | _type |
The socket type. More... | |
SocketHandle | _socket |
A handle to the socket itself. More... | |
SocketAddress | _raddr |
The remote address. More... | |
SocketAddress | _laddr |
The local address. More... | |
int | _sotimeout |
The timeout value. More... | |
Friends | |
class | ServerSocket |
class | SocketSelector |
A base class for network sockets.
|
protected |
|
protected |
Construct a new Socket of the specified type.
type | The socket type. |
|
virtual |
Destructor.
Closes and destroys the socket.
|
virtual |
Connect the socket to a remote endpoint.
Note that if this call fails, the socket will revert to an uninitialized state; call init() again to reuse the socket.
addr | The address, which may either be a dot-separated IP address or a DNS name. |
port | The port number. |
IOException | If an error occurs. |
Reimplemented in DatagramSocket, and StreamSocket.
|
virtual |
Connect the socket to a remote endpoint.
Note that if this call fails, the socket will revert to an uninitialized state; call init() again to reuse the socket.
addr | The address. |
IOException | If an error occurs. |
Reimplemented in DatagramSocket, and StreamSocket.
bool getKeepAlive | ( | ) |
Determine if the SO_KEEPALIVE option is enabled or disabled.
SocketException | If a socket error occurs. |
timespan_s_t getLingerTime | ( | ) | const |
Get the linger time for the socket.
SocketException | If the linger time could not be retrieved. |
|
inline |
Get the address of the local end of the socket.
size_t getReceiveBufSize | ( | ) | const |
Get the size of the socket's internal receive buffer.
SocketException | If the size could not be changed. |
|
inline |
Get the address of the remote (peer) end of the socket.
bool getReuseAddress | ( | ) | const |
Determine if the SO_REUSEADDR option is enabled or disabled.
SocketException | If a socket error occurs. |
size_t getSendBufSize | ( | ) | const |
Get the size of the socket's internal send buffer.
SocketException | If the size could not be changed. |
|
inlineprotected |
Get the underlying socket handle for this socket.
bool getTCPDelay | ( | ) |
Determine if the Nagle algorithm is enabled or disabled.
SocketException | If a socket error occurs. |
|
inline |
Get the socket type.
|
virtual |
Initialize the socket.
This method creates the underlying socket object.
SocketException | If the socket could not be created. |
Reimplemented in ServerSocket.
|
inline |
Determine if the socket is connected.
|
inline |
Determine if the socket has been initialized.
void setKeepAlive | ( | bool | enable | ) |
Enable or disable the SO_KEEPALIVE option on the socket.
enable | true to enable the option false to disable it. |
SocketException | If a socket error occurs. |
void setLingerTime | ( | timespan_s_t | timeout | ) |
Set the linger time for the socket.
timeout | The new linger time, in seconds; a negative value disables the linger feature. |
SocketException | If the linger time could not be changed. |
void setReceiveBufSize | ( | size_t | size | ) |
Set the size of the socket's internal receive buffer.
size | The new size, in bytes. |
SocketException | If the size could not be changed. |
void setReuseAddress | ( | bool | enable | ) |
Enable or disable the SO_REUSEADDR option on the socket.
This method may only be called before the socket has been initialized. This option is off by default in newly created sockets.
enable | true to enable the option false to disable it. |
SocketException | If a socket error occurs, or if the call was made after the socket was initialized. |
void setSendBufSize | ( | size_t | size | ) |
Set the size of the socket's internal send buffer.
size | The new size, in bytes. |
SocketException | If the size could not be changed. |
void setTCPDelay | ( | bool | enable | ) |
Enable or disable the Nagle algorithm for send coalescing.
enable | true to enable the Nagle algorithm (TCP_NODELAY off), false to disable it (TCP_NODELAY on). |
SocketException | If a socket error occurs. |
void setTimeout | ( | timespan_ms_t | timeout | ) |
Set the timeout for the socket.
The timeout affects both I/O and connections.
timeout | The timeout, in milliseconds. |
SocketException | If an error occurs. |
|
virtual |
Shut down the socket.
Closes the connection and destroys the underlying socket object.
Reimplemented in StreamSocket, and ServerSocket.
|
protected |
Wait for the socket to become ready for reading or writing.
mode | The wait mode; one of WaitWrite or WaitRead. |
IOException | On timeout or other error. |
|
friend |
|
friend |
|
protected |
The local address.
|
protected |
The remote address.
|
protected |
A handle to the socket itself.
|
protected |
The timeout value.
|
protected |
The socket type.