Lely core libraries
2.2.5
|
This header file is part of the I/O library; it contains the network socket declarations. More...
#include <lely/io/io.h>
Go to the source code of this file.
Enumerations | |
enum | { IO_SOCK_BTH = 1 , IO_SOCK_IPV4 , IO_SOCK_IPV6 , IO_SOCK_UNIX } |
enum | { IO_SOCK_STREAM = 1 , IO_SOCK_DGRAM } |
enum | { IO_MSG_PEEK = 1 << 0 , IO_MSG_OOB = 1 << 1 , IO_MSG_WAITALL = 1 << 2 } |
enum | { IO_SHUT_RD , IO_SHUT_WR , IO_SHUT_RDWR } |
Functions | |
io_handle_t | io_open_socket (int domain, int type) |
Opens a network socket. More... | |
int | io_open_socketpair (int domain, int type, io_handle_t handle_vector[2]) |
Opens a pair of connected sockets. More... | |
ssize_t | io_recv (io_handle_t handle, void *buf, size_t nbytes, io_addr_t *addr, int flags) |
Performs a receive operation on a network socket. More... | |
ssize_t | io_send (io_handle_t handle, const void *buf, size_t nbytes, const io_addr_t *addr, int flags) |
Performs a send operation on a network socket. More... | |
io_handle_t | io_accept (io_handle_t handle, io_addr_t *addr) |
Accepts an incoming connection on a listening socket. More... | |
int | io_connect (io_handle_t handle, const io_addr_t *addr) |
Connects a socket to a network address. More... | |
int | io_sock_get_domain (io_handle_t handle) |
Obtains the domain of a socket (the first parameter in a call to io_open_socket() or io_open_socketpair()). More... | |
int | io_sock_get_type (io_handle_t handle) |
Obtains the type of a network socket (the second parameter in a call to io_open_socket() or io_open_socketpair()). More... | |
int | io_sock_bind (io_handle_t handle, const io_addr_t *addr) |
Binds a local network address to a socket. More... | |
int | io_sock_listen (io_handle_t handle, int backlog) |
Marks a connection-mode socket (IO_SOCK_STREAM) as accepting connections. More... | |
int | io_sock_shutdown (io_handle_t handle, int how) |
Causes all or part of a full-duplex connection on a socket to be shut down. More... | |
int | io_sock_get_sockname (io_handle_t handle, io_addr_t *addr) |
Obtains the locally-bound name of a socket and stores the resulting address in *addr. More... | |
int | io_sock_get_peername (io_handle_t handle, io_addr_t *addr) |
Obtains the peer address of a socket and stores the result in *addr. More... | |
int | io_sock_get_maxconn (void) |
Returns the maximum queue length for pending connections. More... | |
int | io_sock_get_acceptconn (io_handle_t handle) |
Checks if a socket is currently listening for incoming connections. More... | |
int | io_sock_get_broadcast (io_handle_t handle) |
Checks if a socket is allowed to send broadcast messages. More... | |
int | io_sock_set_broadcast (io_handle_t handle, int broadcast) |
Enables a socket to send broadcast messages if broadcast is non-zero, and disables this option otherwise (disabled by default). More... | |
int | io_sock_get_debug (io_handle_t handle) |
Checks if debugging is enabled for a socket. More... | |
int | io_sock_set_debug (io_handle_t handle, int debug) |
Enables (platform dependent) debugging output for a socket if debug is non-zero, and disables this option otherwise (disabled by default). More... | |
int | io_sock_get_dontroute (io_handle_t handle) |
Checks if routing is disabled for a socket. More... | |
int | io_sock_set_dontroute (io_handle_t handle, int dontroute) |
Bypasses normal routing for a socket if dontroute is non-zero, and disables this option otherwise (disabled by default). More... | |
int | io_sock_get_error (io_handle_t handle, int *perror) |
Obtains and clears the current error number of a socket, and stores the value in *perror. More... | |
int | io_sock_get_keepalive (io_handle_t handle) |
Checks if the TCP keep-alive option is enabled for a socket. More... | |
int | io_sock_set_keepalive (io_handle_t handle, int keepalive, int time, int interval) |
Enables or disables the TCP keep-alive option for a socket (disabled by default). More... | |
int | io_sock_get_linger (io_handle_t handle) |
Obtains the linger time (in seconds) of a socket. More... | |
int | io_sock_set_linger (io_handle_t handle, int time) |
Sets the time (in seconds) io_close() will wait for unsent messages to be sent. More... | |
int | io_sock_get_oobinline (io_handle_t handle) |
Checks if out-of-band data is received in the normal data stream of a socket. More... | |
int | io_sock_set_oobinline (io_handle_t handle, int oobinline) |
Requests that out-of-band data is placed into the normal data stream of socket if oobinline is non-zero, and disables this option otherwise (disabled by default). More... | |
int | io_sock_get_rcvbuf (io_handle_t handle) |
Obtains the size (in bytes) of the receive buffer of a socket. More... | |
int | io_sock_set_rcvbuf (io_handle_t handle, int size) |
Sets the size (in bytes) of the receive buffer of a socket. More... | |
int | io_sock_set_rcvtimeo (io_handle_t handle, int timeout) |
Sets the timeout (in milliseconds) of a receive operation on a socket. More... | |
int | io_sock_get_reuseaddr (io_handle_t handle) |
Checks if a socket is allowed to be bound to an address that is already in use. More... | |
int | io_sock_set_reuseaddr (io_handle_t handle, int reuseaddr) |
Enables a socket to be bound to an address that is already in use if reuseaddr is non-zero, and disables this option otherwise (disabled by default). More... | |
int | io_sock_get_sndbuf (io_handle_t handle) |
Obtains the size (in bytes) of the send buffer of a socket. More... | |
int | io_sock_set_sndbuf (io_handle_t handle, int size) |
Sets the size (in bytes) of the send buffer of a socket. More... | |
int | io_sock_set_sndtimeo (io_handle_t handle, int timeout) |
Sets the timeout (in milliseconds) of a send operation on a socket. More... | |
int | io_sock_get_tcp_nodelay (io_handle_t handle) |
Checks if Nagle's algorithm for send coalescing is enabled for a socket. More... | |
int | io_sock_set_tcp_nodelay (io_handle_t handle, int nodelay) |
Disables Nagle's algorithm for send coalescing if nodelay is non-zero, and enables it otherwise. More... | |
ssize_t | io_sock_get_nread (io_handle_t handle) |
Obtains the amount of data (in bytes) in the input buffer of a socket. More... | |
int | io_sock_get_mcast_loop (io_handle_t handle) |
Checks if the loopback of outgoing multicast datagrams is enabled for a socket. More... | |
int | io_sock_set_mcast_loop (io_handle_t handle, int loop) |
Enables the loopback of outgoing multicast datagrams for a socket if loop is non-zero, and disables this option otherwise (enabled by default). More... | |
int | io_sock_get_mcast_ttl (io_handle_t handle) |
Obtains the TTL (time to live) value for IP multicast traffic on a socket. More... | |
int | io_sock_set_mcast_ttl (io_handle_t handle, int ttl) |
Sets the TTL (time to live) value for IP multicast traffic on a socket (the default is 1). More... | |
int | io_sock_mcast_join_group (io_handle_t handle, unsigned int index, const io_addr_t *group) |
Joins an any-source multicast group. More... | |
int | io_sock_mcast_block_source (io_handle_t handle, unsigned int index, const io_addr_t *group, const io_addr_t *source) |
Blocks data from a given source to a given multicast group. More... | |
int | io_sock_mcast_unblock_source (io_handle_t handle, unsigned int index, const io_addr_t *group, const io_addr_t *source) |
Unblocks data from a given source to a given multicast group. More... | |
int | io_sock_mcast_leave_group (io_handle_t handle, unsigned int index, const io_addr_t *group) |
Leaves an any-source multicast group. More... | |
int | io_sock_mcast_join_source_group (io_handle_t handle, unsigned int index, const io_addr_t *group, const io_addr_t *source) |
Joins a source-specific multicast group. More... | |
int | io_sock_mcast_leave_source_group (io_handle_t handle, unsigned int index, const io_addr_t *group, const io_addr_t *source) |
Leaves a source-specific multicast group. More... | |
This header file is part of the I/O library; it contains the network socket declarations.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Definition in file sock.h.
anonymous enum |
anonymous enum |
anonymous enum |
anonymous enum |
io_handle_t io_open_socket | ( | int | domain, |
int | type | ||
) |
Opens a network socket.
domain | the domain of the socket (one of IO_SOCK_BTH, IO_SOCK_IPV4, IO_SOCK_IPV6 or IO_SOCK_UNIX). |
type | the type of the socket (either IO_SOCK_STREAM or IO_SOCK_DGRAM). |
int io_open_socketpair | ( | int | domain, |
int | type, | ||
io_handle_t | handle_vector[2] | ||
) |
Opens a pair of connected sockets.
domain | the domain of the sockets (one of IO_SOCK_IPV4, IO_SOCK_IPV6 or IO_SOCK_UNIX). |
type | the type of the sockets (either IO_SOCK_STREAM or IO_SOCK_DGRAM). |
handle_vector | a 2-value array which, on success, contains the device handles of the socket pair. |
ssize_t io_recv | ( | io_handle_t | handle, |
void * | buf, | ||
size_t | nbytes, | ||
io_addr_t * | addr, | ||
int | flags | ||
) |
Performs a receive operation on a network socket.
handle | a valid socket device handle. |
buf | a pointer to the destination buffer. |
nbytes | the number of bytes to receive. |
addr | an optional pointer to a value which, on success, contains the source address. |
flags | the type of message reception (any combination of IO_MSG_PEEK, IO_MSG_OOB and IO_MSG_WAITALL). |
ssize_t io_send | ( | io_handle_t | handle, |
const void * | buf, | ||
size_t | nbytes, | ||
const io_addr_t * | addr, | ||
int | flags | ||
) |
Performs a send operation on a network socket.
handle | a valid socket device handle. |
buf | a pointer to the source buffer. |
nbytes | the number of bytes to send. |
addr | an optional pointer to the destination address (ignored for connection-mode sockets). |
flags | type type of message transmission (0 or IO_MSG_OOB). |
io_handle_t io_accept | ( | io_handle_t | handle, |
io_addr_t * | addr | ||
) |
Accepts an incoming connection on a listening socket.
handle | a valid socket device handle. |
addr | an optional pointer to a value which, on success, contains the incoming network address. |
int io_connect | ( | io_handle_t | handle, |
const io_addr_t * | addr | ||
) |
Connects a socket to a network address.
handle | a valid socket device handle. |
addr | a pointer to the network address to which to connect. |
int io_sock_get_domain | ( | io_handle_t | handle | ) |
Obtains the domain of a socket (the first parameter in a call to io_open_socket() or io_open_socketpair()).
int io_sock_get_type | ( | io_handle_t | handle | ) |
Obtains the type of a network socket (the second parameter in a call to io_open_socket() or io_open_socketpair()).
int io_sock_bind | ( | io_handle_t | handle, |
const io_addr_t * | addr | ||
) |
Binds a local network address to a socket.
int io_sock_listen | ( | io_handle_t | handle, |
int | backlog | ||
) |
Marks a connection-mode socket (IO_SOCK_STREAM) as accepting connections.
handle | a valid socket device handle. |
backlog | the number of pending connections in the socket's listen queue. The maximum value can be obtained with io_sock_get_maxconn(). If backlog is 0, an implementation-defined minimum value is used. |
int io_sock_shutdown | ( | io_handle_t | handle, |
int | how | ||
) |
Causes all or part of a full-duplex connection on a socket to be shut down.
handle | a valid socket device handle. |
how | the type of shutdown (one of IO_SHUT_RD, IO_SHUT_WR or IO_SHUT_RDWR). |
int io_sock_get_sockname | ( | io_handle_t | handle, |
io_addr_t * | addr | ||
) |
Obtains the locally-bound name of a socket and stores the resulting address in *addr.
The socket name is set by io_sock_bind() and io_connect().
int io_sock_get_peername | ( | io_handle_t | handle, |
io_addr_t * | addr | ||
) |
Obtains the peer address of a socket and stores the result in *addr.
The peer name is set by io_accept() and io_connect().
int io_sock_get_maxconn | ( | void | ) |
Returns the maximum queue length for pending connections.
This value can be used as the backlog parameter in a call to io_sock_listen()
.
int io_sock_get_acceptconn | ( | io_handle_t | handle | ) |
Checks if a socket is currently listening for incoming connections.
This function implements the SOL_SOCKET/SO_ACCEPTCONN option.
int io_sock_get_broadcast | ( | io_handle_t | handle | ) |
Checks if a socket is allowed to send broadcast messages.
This function implements the SOL_SOCKET/SO_BROADCAST option.
int io_sock_set_broadcast | ( | io_handle_t | handle, |
int | broadcast | ||
) |
Enables a socket to send broadcast messages if broadcast is non-zero, and disables this option otherwise (disabled by default).
This function implements the SOL_SOCKET/SO_BROADCAST option.
int io_sock_get_debug | ( | io_handle_t | handle | ) |
Checks if debugging is enabled for a socket.
This function implements the SOL_SOCKET/SO_DEBUG option.
int io_sock_set_debug | ( | io_handle_t | handle, |
int | debug | ||
) |
Enables (platform dependent) debugging output for a socket if debug is non-zero, and disables this option otherwise (disabled by default).
This function implements the SOL_SOCKET/SO_DEBUG option.
int io_sock_get_dontroute | ( | io_handle_t | handle | ) |
Checks if routing is disabled for a socket.
This function implements the SOL_SOCKET/SO_DONTROUTE option.
int io_sock_set_dontroute | ( | io_handle_t | handle, |
int | dontroute | ||
) |
Bypasses normal routing for a socket if dontroute is non-zero, and disables this option otherwise (disabled by default).
This function implements the SOL_SOCKET/SO_DONTROUTE option.
int io_sock_get_error | ( | io_handle_t | handle, |
int * | perror | ||
) |
Obtains and clears the current error number of a socket, and stores the value in *perror.
This function implements the SOL_SOCKET/SO_ERROR option.
int io_sock_get_keepalive | ( | io_handle_t | handle | ) |
Checks if the TCP keep-alive option is enabled for a socket.
This function implements the SOL_SOCKET/KEEPALIVE option.
int io_sock_set_keepalive | ( | io_handle_t | handle, |
int | keepalive, | ||
int | time, | ||
int | interval | ||
) |
Enables or disables the TCP keep-alive option for a socket (disabled by default).
Note that the time and interval options are supported only on Windows and Linux. This function implements the SOL_SOCKET/SO_KEEPALIVE option.
handle | a valid socket device handle. |
keepalive | a boolean option specifying whether TCP keep-alive should be enabled (non-zero) or disabled (zero). |
time | the timeout (in seconds) after which the first keep-alive packet is sent. This parameter is unused if keepalive is zero. |
interval | the interval (in seconds) between successive keep-alive packets if no acknowledgment is received. This parameter is unused if keepalive is zero. |
int io_sock_get_linger | ( | io_handle_t | handle | ) |
Obtains the linger time (in seconds) of a socket.
This function implements the SOL_SOCKET/SO_LINGER option.
int io_sock_set_linger | ( | io_handle_t | handle, |
int | time | ||
) |
Sets the time (in seconds) io_close() will wait for unsent messages to be sent.
If time is 0, lingering is disabled. This function implements the SOL_SOCKET/SO_LINGER option.
int io_sock_get_oobinline | ( | io_handle_t | handle | ) |
Checks if out-of-band data is received in the normal data stream of a socket.
This function implements the SOL_SOCKET/SO_OOBINLINE option.
int io_sock_set_oobinline | ( | io_handle_t | handle, |
int | oobinline | ||
) |
Requests that out-of-band data is placed into the normal data stream of socket if oobinline is non-zero, and disables this option otherwise (disabled by default).
This function implements the SOL_SOCKET/SO_OOBINLINE option.
int io_sock_get_rcvbuf | ( | io_handle_t | handle | ) |
Obtains the size (in bytes) of the receive buffer of a socket.
This function implements the SOL_SOCKET/SO_RCVBUF option.
int io_sock_set_rcvbuf | ( | io_handle_t | handle, |
int | size | ||
) |
Sets the size (in bytes) of the receive buffer of a socket.
This function implements the SOL_SOCKET/SO_RCVBUF option.
int io_sock_set_rcvtimeo | ( | io_handle_t | handle, |
int | timeout | ||
) |
Sets the timeout (in milliseconds) of a receive operation on a socket.
This function implements the SOL_SOCKET/SO_RCVTIMEO option.
int io_sock_get_reuseaddr | ( | io_handle_t | handle | ) |
Checks if a socket is allowed to be bound to an address that is already in use.
This function implements the SOL_SOCKET/SO_REUSEADDR option.
int io_sock_set_reuseaddr | ( | io_handle_t | handle, |
int | reuseaddr | ||
) |
Enables a socket to be bound to an address that is already in use if reuseaddr is non-zero, and disables this option otherwise (disabled by default).
This function implements the SOL_SOCKET/SO_REUSEADDR option.
int io_sock_get_sndbuf | ( | io_handle_t | handle | ) |
Obtains the size (in bytes) of the send buffer of a socket.
This function implements the SOL_SOCKET/SO_SNDBUF option.
int io_sock_set_sndbuf | ( | io_handle_t | handle, |
int | size | ||
) |
Sets the size (in bytes) of the send buffer of a socket.
This function implements the SOL_SOCKET/SO_SNDBUF option.
int io_sock_set_sndtimeo | ( | io_handle_t | handle, |
int | timeout | ||
) |
Sets the timeout (in milliseconds) of a send operation on a socket.
This function implements the SOL_SOCKET/SO_SNDTIMEO option.
int io_sock_get_tcp_nodelay | ( | io_handle_t | handle | ) |
Checks if Nagle's algorithm for send coalescing is enabled for a socket.
This function implements the IPPROTO_TCP/TCP_NODELAY option.
int io_sock_set_tcp_nodelay | ( | io_handle_t | handle, |
int | nodelay | ||
) |
Disables Nagle's algorithm for send coalescing if nodelay is non-zero, and enables it otherwise.
This function implements the IPPROTO_TCP/TCP_NODELAY option. Nagle's algorithm is enabled by default.
ssize_t io_sock_get_nread | ( | io_handle_t | handle | ) |
Obtains the amount of data (in bytes) in the input buffer of a socket.
int io_sock_get_mcast_loop | ( | io_handle_t | handle | ) |
Checks if the loopback of outgoing multicast datagrams is enabled for a socket.
This function implements the IPPROTO_IP/IP_MULTICAST_LOOP and IPPROTO_IPV6/IPV6_MULTICAST_LOOP options.
int io_sock_set_mcast_loop | ( | io_handle_t | handle, |
int | loop | ||
) |
Enables the loopback of outgoing multicast datagrams for a socket if loop is non-zero, and disables this option otherwise (enabled by default).
This function implements the IPPROTO_IP/IP_MULTICAST_LOOP and IPPROTO_IPV6/IPV6_MULTICAST_LOOP options.
int io_sock_get_mcast_ttl | ( | io_handle_t | handle | ) |
Obtains the TTL (time to live) value for IP multicast traffic on a socket.
This function implements the IPPROTO_IP/IP_MULTICAST_TTL and IPPROTO_IPV6/IPV6_MULTICAST_HOPS options.
int io_sock_set_mcast_ttl | ( | io_handle_t | handle, |
int | ttl | ||
) |
Sets the TTL (time to live) value for IP multicast traffic on a socket (the default is 1).
This function implements the IPPROTO_IP/IP_MULTICAST_TTL and IPPROTO_IPV6/IPV6_MULTICAST_HOPS options.
int io_sock_mcast_join_group | ( | io_handle_t | handle, |
unsigned int | index, | ||
const io_addr_t * | group | ||
) |
Joins an any-source multicast group.
handle | a valid IPv4 or IPv6 connectionless socket device handle. |
index | a network interface index. On Linux, if index is 0, the interface is chosen automatically. |
group | a pointer to the address of the group to join. |
int io_sock_mcast_block_source | ( | io_handle_t | handle, |
unsigned int | index, | ||
const io_addr_t * | group, | ||
const io_addr_t * | source | ||
) |
Blocks data from a given source to a given multicast group.
handle | a valid IPv4 or IPv6 connectionless socket device handle. |
index | a network interface index. On Linux, if index is 0, the interface is chosen automatically. |
group | a pointer to the address of the multicast group. |
source | a pointer to the address of the source to block. |
int io_sock_mcast_unblock_source | ( | io_handle_t | handle, |
unsigned int | index, | ||
const io_addr_t * | group, | ||
const io_addr_t * | source | ||
) |
Unblocks data from a given source to a given multicast group.
handle | a valid IPv4 or IPv6 connectionless socket device handle. |
index | a network interface index. On Linux, if index is 0, the interface is chosen automatically. |
group | a pointer to the address of the multicast group. |
source | a pointer to the address of the source to unblock. |
int io_sock_mcast_leave_group | ( | io_handle_t | handle, |
unsigned int | index, | ||
const io_addr_t * | group | ||
) |
Leaves an any-source multicast group.
handle | a valid IPv4 or IPv6 connectionless socket device handle. |
index | a network interface index. On Linux, if index is 0, the interface is chosen automatically. |
group | a pointer to the address of the group to leave. |
int io_sock_mcast_join_source_group | ( | io_handle_t | handle, |
unsigned int | index, | ||
const io_addr_t * | group, | ||
const io_addr_t * | source | ||
) |
Joins a source-specific multicast group.
handle | a valid IPv4 or IPv6 connectionless socket device handle. |
index | a network interface index. On Linux, if index is 0, the interface is chosen automatically. |
group | a pointer to the address of the group to join. |
source | a pointer to the address of the source from which to receive data. |
int io_sock_mcast_leave_source_group | ( | io_handle_t | handle, |
unsigned int | index, | ||
const io_addr_t * | group, | ||
const io_addr_t * | source | ||
) |
Leaves a source-specific multicast group.
handle | a valid IPv4 or IPv6 connectionless socket device handle. |
index | a network interface index. On Linux, if index is 0, the interface is chosen automatically. |
group | a pointer to the address of the group to leave. |
source | a pointer to the address of the source from which data was received. |