Public Member Functions |
| ServerSocket () |
| Creates a non-bound server socket.
|
| ServerSocket (int port) |
| Creates a new ServerSocket bound to the specified port, if the value of port is 0, then any free port is chosen.
|
| ServerSocket (int port, int backlog) |
| Creates a new ServerSocket bound to the specified port, if the value of port is 0, then any free port is chosen.
|
| ServerSocket (int port, int backlog, const InetAddress *address) |
| Creates a new ServerSocket bound to the specified port, if the value of port is 0, then any free port is chosen.
|
virtual | ~ServerSocket () |
| Releases socket handle if close() hasn't been called.
|
virtual void | bind (const std::string &host, int port) |
| Bind and listen to given local IPAddress and port, if the address is empty than a valid local address will be chosen, and if the port of 0 than an available open port will be chosen.
|
virtual void | bind (const std::string &host, int port, int backlog) |
| Bind and listen to given local IPAddress and port, if the address is empty than a valid local address will be chosen, and if the port of 0 than an available open port will be chosen.
|
virtual Socket * | accept () |
| Listens for a connection request on the bound IPAddress and Port for this ServerSocket, the caller blocks until a connection is made.
|
virtual void | close () |
| Closes the server socket, causing any Threads blocked on an accept call to throw an Exception.
|
virtual bool | isClosed () const |
virtual bool | isBound () const |
virtual int | getReceiveBufferSize () const |
| Gets the receive buffer size for this socket, SO_RCVBUF.
|
virtual void | setReceiveBufferSize (int size) |
| Sets the receive buffer size for this socket, SO_RCVBUF.
|
virtual bool | getReuseAddress () const |
| Gets the reuse address flag, SO_REUSEADDR.
|
virtual void | setReuseAddress (bool reuse) |
| Sets the reuse address flag, SO_REUSEADDR.
|
virtual int | getSoTimeout () const |
| Gets the timeout for socket operations, SO_TIMEOUT.
|
virtual void | setSoTimeout (int timeout) |
| Sets the timeout for socket operations, SO_TIMEOUT.
|
virtual int | getLocalPort () const |
| Gets the port number on the Local machine that this ServerSocket is bound to.
|
virtual std::string | toString () const |
Static Public Member Functions |
static void | setSocketImplFactory (SocketImplFactory *factory) |
| Sets the instance of a SocketImplFactory that the ServerSocket class should use when new instances of this class are created.
|
Protected Member Functions |
| ServerSocket (SocketImpl *impl) |
| Creates a ServerSocket wrapping the provided SocketImpl instance, this Socket is considered unconnected.
|
virtual void | implAccept (Socket *socket) |
| Virtual method that allows a ServerSocket subclass to override the accept call and provide its own SocketImpl for the socket.
|
virtual int | getDefaultBacklog () |
| Allows a subclass to override what is considered the default backlog.
|
void | checkClosed () const |
void | ensureCreated () const |
void | setupSocketImpl (int port, int backlog, const InetAddress *ifAddress) |
This class implements server sockets.
A server socket waits for requests to come in over the network.
The actual work of the server socket is performed by an instance of the SocketImpl class. An application can change the socket factory that creates the socket implementation to configure itself to create sockets of a particular type.
- Since:
- 1.0
decaf::net::ServerSocket::ServerSocket |
( |
int |
port | ) |
|
Creates a new ServerSocket bound to the specified port, if the value of port is 0, then any free port is chosen.
When this constructor is called the size of the backlog queue is set at 50, connections that arrive after the backlog has been reached are refused.
If a SocketImplFactory is registered then the createSocketImpl method on the factory will be called otherwise a default SocketImpl is created.
- Parameters:
-
- Exceptions:
-
IOException | if there is an I/O error while performing this operation. |
IllegalArgumentException | if the port value is negative or greater than 65535. |
decaf::net::ServerSocket::ServerSocket |
( |
int |
port, |
|
|
int |
backlog |
|
) |
| |
Creates a new ServerSocket bound to the specified port, if the value of port is 0, then any free port is chosen.
When this constructor is called the size of the backlog queue is set at backlog, connections that arrive after the backlog has been reached are refused. If backlog is zero or negative then the default backlog value of 50 is used.
If a SocketImplFactory is registered then the createSocketImpl method on the factory will be called otherwise a default SocketImpl is created.
- Parameters:
-
port | The port to bind the ServerSocket to. |
backlog | The the number of incoming connection attempts to queue before connections are refused. |
- Exceptions:
-
IOException | if there is an I/O error while performing this operation. |
IllegalArgumentException | if the port value is negative or greater than 65535. |
decaf::net::ServerSocket::ServerSocket |
( |
int |
port, |
|
|
int |
backlog, |
|
|
const InetAddress * |
address |
|
) |
| |
Creates a new ServerSocket bound to the specified port, if the value of port is 0, then any free port is chosen.
If the value of the ifAddress is empty or NULL then the ANY address is used.
When this constructor is called the size of the backlog queue is set at backlog, connections that arrive after the backlog has been reached are refused. If backlog is zero or negative then the default backlog value of 50 is used.
If a SocketImplFactory is registered then the createSocketImpl method on the factory will be called otherwise a default SocketImpl is created.
- Parameters:
-
port | The port to bind the ServerSocket to. |
backlog | The the number of incoming connection attempts to queue before connections are refused. |
ifAddress | The IP Address to bind to on the local machine. |
- Exceptions:
-
IOException | if there is an I/O error while performing this operation. |
IllegalArgumentException | if the port value is negative or greater than 65535. |
virtual void decaf::net::ServerSocket::bind |
( |
const std::string & |
host, |
|
|
int |
port, |
|
|
int |
backlog |
|
) |
| [virtual] |
Bind and listen to given local IPAddress and port, if the address is empty than a valid local address will be chosen, and if the port of 0 than an available open port will be chosen.
If the backlog is greater than zero it will be used instead of the default value, otherwise the default value is used and no error is generated.
- Parameters:
-
host | The IP address or host name. |
port | The TCP port between 1..655535. |
backlog | The size of listen backlog. |
- Exceptions:
-
IOException | if an I/O error occurs while binding the socket. |
IllegalArgumentException | if the parameters are not valid. |