#include <usocket.hpp>
Public Member Functions | |
UServerSocket () | |
creates an unbound server socket (bind(port) MUST then be called). | |
UServerSocket (int port) | |
creates and binds a server socket (by calling bind(port, 0, true)). | |
virtual | ~UServerSocket () |
destructor; closes this socket. | |
virtual void | onInput (UCall &) |
adds a callback that is fired when data is received on the server socket. | |
virtual USocket * | accept () |
listens for a connection to be made and accepts it. | |
bool | bind (int port, int backlog=0, bool reuse_address=true) |
virtual void | close () |
closes this socket. | |
virtual USocket * | createSocket () const |
called by accept() to create the new socket (see accept() for details). | |
bool | isClosed () const |
returns the closed state of the ServerSocket | |
int | getLocalPort () const |
int | getDescriptor () const |
Protected Attributes | |
int | listen_port |
int | listen_sock |
sockaddr_in * | sin |
UInput * | input |
example:
creates a ServerSocket on this port
UServerSocket* se = new UServerSocket(666);
foo() will be called each time the servsoket receives a connection
request. Note that the servsocket is given as an argument to foo()
se->onInput(ucall(se, foo));
void foo(UServerSocket* se) {
accepts the connection an returns the corresponding socket
USocket* so = se->accept();
....
}
See also: USocket.
USocket * ubit::UServerSocket::accept | ( | ) | [virtual] |
listens for a connection to be made and accepts it.
This method blocks until a connection is made. It is typically called in a callback function: see onInput() and class UServerSocket
Note: accept() calls createSocket() to create the new socket. By default this functions returns {new USocket}. It can be redefined by UServerSocket subclasses to create appropriate socket objets.
void ubit::UServerSocket::onInput | ( | UCall & | ) | [virtual] |
adds a callback that is fired when data is received on the server socket.
accept() is typically called in such a callback