|
ucommon
|
A generic tcp server class. More...
#include <socket.h>


Public Member Functions | |
| TCPServer (char *address, char *service, unsigned backlog=5) | |
| Create and bind a tcp server. | |
Public Member Functions inherited from ucommon::ListenSocket | |
| socket_t | accept (struct sockaddr_storage *address=((void *) 0)) |
| Accept a socket connection. | |
| socket_t | getsocket (void) |
| Get the socket descriptor of the listener. | |
| ListenSocket (char *address, char *service, unsigned backlog=5, int family=0, int type=0, int protocol=0) | |
| Create and bind a listener socket. | |
| operator socket_t () | |
| Get the socket descriptor of the listener. | |
| socket_t | operator* () |
| Get the socket descriptor of the listener by pointer reference. | |
| bool | waitConnection (timeout_t timeout=Timer::inf) |
| Wait for a pending connection. | |
Additional Inherited Members | |
Static Public Member Functions inherited from ucommon::ListenSocket | |
| static socket_t | create (char *address, char *service, unsigned backlog=5, int family=0, int type=0, int protocol=0) |
| Create a listen socket directly. | |
Protected Types inherited from ucommon::Socket | |
| typedef void * | set_t |
| External definition of fd_set type. | |
Protected Member Functions inherited from ucommon::Socket | |
| int | blocking (bool enable) |
| Set socket blocking I/O mode. | |
| int | broadcast (bool enable) |
| Set socket for unicast mode broadcasts. | |
| void | cancel (void) |
| Cancel pending i/o by shutting down the socket. | |
| int | connectto (struct addrinfo *list) |
| Connect our socket to a remote host from an address list. | |
| int | disconnect (void) |
| Disconnect a connected socket. | |
| int | drop (struct addrinfo *list) |
| Drop socket from multicast group. | |
| int | err (void) |
| Get error code. | |
| int | getError (void) |
| Get socket error code. | |
| unsigned | getPending (void) |
| Get the number of bytes of data in the socket receive buffer. | |
| int | gettype (void) |
| Get the type of a socket. | |
| bool | isConnected (void) |
| Test if socket is connected. | |
| bool | isPending (unsigned value) |
| See the number of bytes in the receive queue. | |
| int | join (struct addrinfo *list) |
| Join socket to multicast group. | |
| int | keepalive (bool enable) |
| Set socket for keepalive packets. | |
| int | loopback (bool enable) |
| Set loopback to read multicast packets we broadcast. | |
| int | multicast (unsigned ttl=1) |
| Set multicast mode and multicast broadcast range. | |
| int | nodelay (void) |
| Set nodelay option for tcp socket. | |
| operator bool () | |
| Test if socket is valid. | |
| bool | operator! () |
| Test if socket is invalid. | |
| Socket & | operator= (socket_t socket) |
| Assign socket from a socket descriptor. | |
| size_t | peek (void *data, size_t number) |
| Peek at data waiting in the socket receive buffer. | |
| size_t | printf (char *format,...) |
| Print formatted string to socket. | |
| int | priority (int scheduling) |
| Set packet priority, 0 to 6 unless privileged. | |
| size_t | readfrom (void *data, size_t number, struct sockaddr_storage *address=((void *) 0)) |
| Read data from the socket receive buffer. | |
| size_t | readline (char *data, size_t size) |
| Read a newline of text data from the socket and save in NULL terminated string. | |
| size_t | readline (string &buffer) |
| Read a string of input from the socket and strip trailing newline. | |
| int | recvsize (unsigned size) |
| Set the size of the socket receive buffer. | |
| void | release (void) |
| Shutdown and close the socket. | |
| unsigned | segsize (unsigned size) |
| Set segment size and get mtu of a socket. | |
| int | sendsize (unsigned size) |
| Set the size of the socket send buffer. | |
| int | sendwait (unsigned size) |
| Set the size to wait before sending. | |
| bool | setccid (uint8_t ccid) |
| Set ccid of dccp socket. | |
| void | shutdown (void) |
| Shutdown the socket communication channel. | |
| Socket () | |
| Create a socket object for use. | |
| Socket (Socket &existing) | |
| Create socket as duped handle of existing socket. | |
| Socket (socket_t socket) | |
| Create socket from existing socket descriptor. | |
| Socket (struct addrinfo *address) | |
| Create and connect a socket to an address from an address list. | |
| Socket (int family, int type, int protocol=0) | |
| Create an unbound socket of a specific type. | |
| Socket (char *address, char *port, int family=0, int type=0, int protocol=0) | |
| Create a bound socket. | |
| int | tos (int type) |
| Set the type of service field of outgoing packets. | |
| int | ttl (unsigned char time) |
| Set the time to live before packets expire. | |
| int | wait (timeout_t timeout=Timer::inf) |
| Socket i/o timer setting. | |
| bool | waitPending (timeout_t timeout=0) |
| Test for pending input data. | |
| bool | waitSending (timeout_t timeout=0) |
| Test for output data sent. | |
| size_t | writes (char *string) |
| Write a null terminated string to the socket. | |
| size_t | writeto (void *data, size_t number, struct sockaddr *address=((void *) 0)) |
| Write data to the socket send buffer. | |
| virtual | ~Socket () |
| Shutdown, close, and destroy socket. | |
Static Protected Member Functions inherited from ucommon::Socket | |
| static socket_t | acceptfrom (socket_t socket, struct sockaddr_storage *address=((void *) 0)) |
| Accept a socket connection from a remote host. | |
| static Socket | acceptfrom (Socket &socket, struct sockaddr_storage *address) |
| Accept connection through socket. | |
| static int | bindto (socket_t socket, char *address, char *service, int protocol=0) |
| Bind the socket descriptor to a known interface and service port. | |
| static int | bindto (socket_t socket, struct sockaddr *address) |
| Bind the socket descriptor to a known interface. | |
| static int | blocking (socket_t socket, bool enable) |
| Set socket blocking I/O mode of socket descriptor. | |
| static int | broadcast (socket_t socket, bool enable) |
| Set socket for unicast mode broadcasts on socket descriptor. | |
| static void | cancel (socket_t socket) |
| Cancel pending i/o by shutting down the socket. | |
| static void | clear (set_t mask) |
| Clear a mask, setting all entries to zero. | |
| static void | clear (socket_t socket, set_t mask) |
| Clear a socket entry in a mask. | |
| static int | connectto (socket_t socket, struct addrinfo *list) |
| Connect socket descriptor to a remote host from an address list. | |
| static void | connectto (Socket &socket, Socket::address &address) |
| Connect a socket. | |
| static unsigned | copy (struct sockaddr *target, struct sockaddr *origin) |
| Copy a socket address. | |
| static socket_t | create (int family, int type, int protocol) |
| Create a socket object unbound. | |
| static socket_t | create (struct addrinfo *address, int type, int protocol) |
| Create a connected socket. | |
| static socket_t | create (char *iface, char *service, int family=0, int type=0, int protocol=0) |
| Create a bound socket for a service. | |
| static socket_t | create (Socket::address &address) |
| Create a connected socket for a service. | |
| static int | disconnect (socket_t socket) |
| Disconnect a connected socket descriptor. | |
| static void | disconnect (Socket &socket) |
| Disconnect a connected socket. | |
| static int | drop (socket_t socket, struct addrinfo *list) |
| Drop socket descriptor from multicast group. | |
| static bool | equal (struct sockaddr *address1, struct sockaddr *address2) |
| Compare socket addresses. | |
| static bool | equalfrom (struct sockaddr_storage *address1, struct sockaddr_storage *address2) |
| Compare socket addresses. | |
| static bool | equalhost (struct sockaddr *address1, struct sockaddr *address2) |
| Compare socket host addresses. | |
| static bool | equalinet (struct sockaddr_internet *address1, struct sockaddr_internet *address2) |
| Compare socket addresses. | |
| static int | error (socket_t socket) |
| Get socket error code of socket descriptor. | |
| static int | error (void) |
| Return error code of last socket operation,. | |
| static void | family (int query) |
| Set default socket family preference for query options when the socket type is otherwise not specified. | |
| static socklen_t | getaddr (socket_t socket, struct sockaddr_storage *address, char *hostname, char *service) |
| Lookup a host name and service address based on the addressing family and socket type of a socket descriptor. | |
| static struct addrinfo * | getaddress (char *host, char *service, int type=SOCK_STREAM, int protocol=0) |
| Get an address list directly. | |
| static char * | getaddress (struct sockaddr *address, char *buffer, socklen_t size) |
| Get the hostname of a socket address. | |
| static int | getfamily (socket_t socket) |
| Get the address family of the socket descriptor. | |
| static int | getfamily (struct sockaddr_storage &address) |
| Get the address family of a socket address object. | |
| static int | getfamily (struct sockaddr_internet &address) |
| Get the address family of an internet socket address object. | |
| static struct addrinfo * | gethint (socket_t socket, struct addrinfo *hint) |
| Create an address info lookup hint based on the family and type properties of a socket descriptor. | |
| static char * | gethostname (struct sockaddr *address, char *buffer, size_t size) |
| Lookup and return the host name associated with a socket address. | |
| static int | getinterface (struct sockaddr *address, struct sockaddr *destination) |
| Get the socket address of the interface needed to reach a destination address. | |
| static socklen_t | getlen (struct sockaddr *address) |
| Get the size of a socket address. | |
| static int | getlocal (socket_t socket, struct sockaddr_storage *address) |
| Get local address to which the socket is bound. | |
| static set_t | getmask (void) |
| Get a mask from the heap. | |
| static int | getremote (socket_t socket, struct sockaddr_storage *address) |
| Get remote address to which the socket is connected. | |
| static short | getservice (struct sockaddr *address) |
| Get the service port of a socket. | |
| static int | gettype (socket_t socket) |
| Get the type of a socket. | |
| static short | inetservice (struct sockaddr_internet *address) |
| Get the service port of an inet socket. | |
| static void | init (void) |
| Initialize socket subsystem. | |
| static void | init (char *program) |
| Initialize with program name. | |
| static bool | isNull (char *string) |
| Simple function to validate that a given IP address string is a "zero" address. | |
| static bool | isNumeric (char *string) |
| Simple function to validate that a given IP address string is a numeric address. | |
| static int | join (socket_t socket, struct addrinfo *list) |
| Join socket descriptor to multicast group. | |
| static int | keepalive (socket_t socket, bool enable) |
| Set socket for keepalive packets for socket descriptor. | |
| static unsigned | keyhost (struct sockaddr *address, unsigned size) |
| Convert a socket host address into a hash map index. | |
| static unsigned | keyindex (struct sockaddr *address, unsigned size) |
| Convert a socket address and service into a hash map index. | |
| static int | listento (socket_t socket, struct sockaddr *address, int backlog=5) |
| Bind the socket descriptor to a known interface listen on service port. | |
| static int | loopback (socket_t socket, bool enable) |
| Set loopback to read multicast packets socket descriptor broadcasts. | |
| static int | multicast (socket_t socket, unsigned ttl=1) |
| Set multicast mode and multicast broadcast range for socket descriptor. | |
| static int | nodelay (socket_t socket) |
| Set tcp nodelay option on socket descriptor. | |
| static unsigned | pending (socket_t socket) |
| Get the number of bytes pending in the receive buffer of a socket descriptor. | |
| static ssize_t | printf (socket_t socket, char *format,...) |
| Print formatted string to socket. | |
| static int | priority (socket_t socket, int scheduling) |
| Set packet priority of socket descriptor. | |
| static size_t | readfrom (Socket &socket, char *buffer, size_t size, struct sockaddr_storage *address) |
| receive from socket object. | |
| static ssize_t | readline (socket_t socket, char *data, size_t size, timeout_t timeout=Timer::inf) |
| Read a newline of text data from the socket and save in NULL terminated string. | |
| static ssize_t | recvfrom (socket_t socket, void *buffer, size_t size, int flags=0, struct sockaddr_storage *address=((void *) 0)) |
| Get data waiting in receive queue. | |
| static ssize_t | recvinet (socket_t socket, void *buffer, size_t size, int flags=0, struct sockaddr_internet *address=((void *) 0)) |
| Get internet data waiting in receive queue. | |
| static int | recvsize (socket_t socket, unsigned size) |
| Set the receive size of a socket descriptor. | |
| static void | release (struct addrinfo *list) |
| Release an address list directly. | |
| static void | release (socket_t socket) |
| Release (close) a socket. | |
| static void | release (set_t mask) |
| Release a heap allocated mask. | |
| static ssize_t | replyto (socket_t socket, void *buffer, size_t size, int flags, struct sockaddr_storage *address) |
| Send reply on socket. | |
| static unsigned | segsize (socket_t socket, unsigned size=0) |
| Set segment size and get MTU. | |
| static int | select (int max, set_t read, set_t write, set_t error) |
| Select without timeout. | |
| static int | select (int max, set_t read, set_t write, set_t error, timeout_t timeout) |
| Select with timeout. | |
| static ssize_t | sendinet (socket_t socket, void *buffer, size_t size, int flags, struct sockaddr_internet *address) |
| Send to internet socket. | |
| static int | sendsize (socket_t socket, unsigned size) |
| Set the send size of a socket descriptor. | |
| static ssize_t | sendto (socket_t socket, void *buffer, size_t size, int flags=0, struct sockaddr *address=((void *) 0)) |
| Send data on socket. | |
| static int | sendwait (socket_t socket, unsigned size) |
| Set the size to wait before sending. | |
| static void | set (socket_t socket, set_t mask) |
| Set a socket entry in a mask. | |
| static bool | setccid (socket_t socket, uint8_t ccid) |
| Set congestion control id. | |
| static unsigned | store (struct sockaddr_storage *storage, struct sockaddr *address) |
| Store an address into an address object. | |
| static unsigned | store (struct sockaddr_internet *storage, struct sockaddr *address) |
| Store an address into an internet address object. | |
| static bool | subnet (struct sockaddr *address1, struct sockaddr *address2) |
| See if both addresses are in the same subnet. | |
| static bool | test (socket_t socket, set_t mask) |
| Test a socket entry in a mask. | |
| static int | tos (socket_t socket, int type) |
| Set type of service of socket descriptor. | |
| static int | ttl (socket_t socket, unsigned char time) |
| Set the time to live for the socket descriptor. | |
| static void | v4mapping (bool enable) |
| Set the default socket behavior for v6-v4 mapping. | |
| static bool | wait (socket_t socket, timeout_t timeout=0) |
| Test for pending input data. | |
| static size_t | writeto (Socket &socket, char *buffer, size_t size, struct sockaddr *address) |
| Send to socket object. | |
Static Protected Attributes inherited from ucommon::Socket | |
| static size_t | masksize |
A generic tcp server class.
This saves the service id tag so that it can be propagated.
| ucommon::TCPServer::TCPServer | ( | char * | address, |
| char * | service, | ||
| unsigned | backlog = 5 |
||
| ) |
Create and bind a tcp server.
This mostly is used to preserve the service tag for TCP Socket when derived from a server instance.
| service | tag to use. |
| address | of interface to bind or "*" for all. |
| backlog | size for pending connections. |
1.8.1.2