Main Page | Modules | Alphabetical List | Data Structures | File List | Data Fields | Related Pages

socket: General socket manipulations


IP socket functions

int socket_tcp4 (void)
int socket_tcp6 (void)
int socket_tcp (void)
int socket_udp4 (void)
int socket_udp6 (void)
int socket_udp (void)
int socket_connect4 (int sock, const ipv4addr *ip, ipv4port port)
int socket_connect4_timeout (int sock, const ipv4addr *ip, ipv4port port, int timeout)
int socket_connect6 (int sock, const ipv6addr *ip, ipv6port port)
int socket_connect6_timeout (int sock, const ipv6addr *ip, ipv6port port, int timeout)
int socket_bind4 (int sock, const ipv4addr *ip, ipv4port port)
int socket_bind6 (int sock, const ipv6addr *ip, ipv6port port)
int socket_accept4 (int sock, ipv4addr *ip, ipv4port *port)
int socket_accept6 (int sock, ipv6addr *ip, ipv6port *port)
int socket_recv4 (int sock, char *buffer, unsigned buflen, ipv4addr *ip, ipv4port *port)
int socket_recv6 (int sock, char *buffer, unsigned buflen, ipv6addr *ip, ipv6port *port)
int socket_send4 (int sock, const char *buffer, unsigned buflen, const ipv4addr *ip, ipv4port port)
int socket_send6 (int sock, const char *buffer, unsigned buflen, const ipv6addr *ip, ipv6port port)
int socket_getaddr4 (int sock, ipv4addr *ip, ipv4port *port)
int socket_getaddr6 (int sock, ipv6addr *ip, ipv6port *port)
int socket_cork (int sock)
int socket_uncork (int sock)
int socket_notcpdelay (int sock, int enable)

UNIX local-domain socket functions

int socket_unixdgm (void)
int socket_unixstr (void)
int socket_connectu (int sock, const char *path)
int socket_connectu_timeout (int sock, const char *path, int timeout)
int socket_bindu (int sock, const char *path)
int socket_acceptu (int sock)
int socket_recvu (int sock, char *buffer, unsigned buflen)
int socket_sendu (int sock, const char *buffer, unsigned buflen)
int socket_pairstr (int fd[2])
int socket_pairdgm (int fd[2])

Functions for any type of socket

int socket_broadcast (int sock)
int socket_connected (int sock)
int socket_linger (int fd, int onoff, int seconds)
int socket_listen (int sock, int backlog)
int socket_reuse (int sock)
int socket_shutdown (int sock, int shut_rd, int shut_wr)
int socket_sendfd (int sock, int fd)
int socket_recvfd (int sock)

Detailed Description

Calling Convention
When calling a socket function, the socket file descriptor (where required) will always be the first parameter. Functions that return a file descriptor (either creating a new socket or accepting a connection on a socket return that file descriptor on success or -1 on error. All other functions return non-zero (true) on success or 0 (false) on error. All functions set errno on error.

Function Documentation

int socket_accept4 int  sock,
ipv4addr ip,
ipv4port port
 

Accept a connection on a socket from an IPv4 address.

int socket_accept6 int  sock,
ipv6addr ip,
ipv6port port
 

Accept a connection on a socket from an IPv6 address.

int socket_acceptu int  sock  ) 
 

Accept a UNIX domain connection.

int socket_bind4 int  sock,
const ipv4addr ip,
ipv4port  port
 

Bind a socket to an IPv4 address.

int socket_bind6 int  sock,
const ipv6addr ip,
ipv6port  port
 

Bind a socket to an IPv6 address.

int socket_bindu int  sock,
const char *  path
 

Bind a UNIX domain address (path) to a socket.

int socket_broadcast int  sock  ) 
 

Mark a socket for broadcast transmission.

int socket_connect4 int  sock,
const ipv4addr ip,
ipv4port  port
 

Connect a socket to an IPv4 address.

int socket_connect4_timeout int  sock,
const ipv4addr ip,
ipv4port  port,
int  timeout
 

Connect a socket to an IPv4 address, honouring a timeout.

Note:
The socket will have nonblocking mode turned on on return from this function.

int socket_connect6 int  sock,
const ipv6addr ip,
ipv6port  port
 

Connect a socket to an IPv6 address.

int socket_connect6_timeout int  sock,
const ipv6addr ip,
ipv6port  port,
int  timeout
 

Connect a socket to an IPv6 address, honouring a timeout.

Note:
The socket will have nonblocking mode turned on on return from this function.

int socket_connected int  sock  ) 
 

Test if a socket is connected.

int socket_connectu int  sock,
const char *  path
 

Make an UNIX domain connection.

int socket_connectu_timeout int  sock,
const char *  path,
int  timeout
 

Connect a socket to an UNIX domain address, honouring a timeout.

Note:
The socket will have nonblocking mode turned on on return from this function.

int socket_cork int  sock  ) 
 

Stop a TCP socket from sending short writes.

Several UNIX OS's have a facility which can prevent packets from being sent across the wire until they are completely full, even if short writes are sent to the socket that would normally result in output packets. This routine attempts to enable that facility to optimize throughput for bulk data transfers. It is known to work on Linux (with the TCP_CORK option) and to at least compile on BSD (with the TCP_NOPUSH option). On OS's which lack either of these two options, this function is essentially a no-op.

int socket_getaddr4 int  sock,
ipv4addr ip,
ipv4port port
 

Determine the IPv4 address of a socket.

int socket_getaddr6 int  sock,
ipv6addr ip,
ipv6port port
 

Determine the IPv6 address of a socket.

int socket_linger int  fd,
int  onoff,
int  seconds
 

Set the socket "linger" option.

int socket_listen int  sock,
int  backlog
 

Listen to a socket.

int socket_notcpdelay int  fd,
int  on
 

Turn on or off TCP NODELAY flag.

Enabling NODELAY disables the standard Nagle algorithm, which tries to coalesce multiple short writes into one larger packet for better network efficiency. With NODELAY enabled, each write will immediately be sent out onto the network as a seperate packet.

int socket_pairdgm int  fd[2]  ) 
 

Create a pair of datagram sockets.

int socket_pairstr int  fd[2]  ) 
 

Create a pair of stream sockets.

int socket_recv4 int  sock,
char *  buffer,
unsigned  buflen,
ipv4addr ip,
ipv4port port
 

Receive a datagram from a UDP socket.

int socket_recv6 int  sock,
char *  buffer,
unsigned  buflen,
ipv6addr ip,
ipv6port port
 

Receive a datagram from an IPv6 UDP socket.

int socket_recvfd int  sock  ) 
 

Receive a file descriptor over a socket.

int socket_recvu int  sock,
char *  buffer,
unsigned  buflen
 

Receive a datagram from a UNIX domain socket.

int socket_reuse int  sock  ) 
 

Mark a socket for address reuse.

int socket_send4 int  sock,
const char *  buffer,
unsigned  buflen,
const ipv4addr ip,
ipv4port  port
 

Send a datagram on a UDP socket.

int socket_send6 int  sock,
const char *  buffer,
unsigned  buflen,
const ipv6addr ip,
ipv6port  port
 

Send a datagram on an IPv6 UDP socket.

int socket_sendfd int  sock,
int  fd
 

Send a file descriptor over a socket.

int socket_sendu int  sock,
const char *  buffer,
unsigned  buflen
 

Send a datagram on a UNIX domain socket.

int socket_shutdown int  sock,
int  shut_rd,
int  shut_wr
 

Shut down part or all of a socket.

int socket_tcp void   ) 
 

Create a TCP/IP socket.

int socket_tcp4 void   ) 
 

Create a TCP/IPv4 socket.

int socket_tcp6 void   ) 
 

Create a TCP/IPv6 socket.

int socket_udp void   ) 
 

Create a UDP/IP socket.

int socket_udp4 void   ) 
 

Create a UDP/IPv4 socket.

int socket_udp6 void   ) 
 

Create a UDP/IPv6 socket.

int socket_uncork int  sock  ) 
 

Unstop a TCP socket from sending short writes.

int socket_unixdgm void   ) 
 

Create UNIX domain datagram socket.

int socket_unixstr void   ) 
 

Create UNIX domain stream socket.


Generated on Tue Mar 23 21:58:09 2004 for bglibs by doxygen 1.3.5