GATE
sockets.h File Reference

Network socket library. More...

#include "gate/net/gate_net_api.h"
#include "gate/gatetypes.h"
#include "gate/strings.h"

Classes

struct  gate_socket_select_entry_class
 
struct  gate_socket_ip4address_class
 
struct  gate_socket_ip6address_class
 
struct  gate_socket_ip4endpoint_class
 
struct  gate_socket_ip6endpoint_class
 
struct  gate_socket_unixendpoint_class
 
struct  gate_socket_endpoint_class
 

Macros

#define GATE_SOCKET_INVALID   ((gate_intptr_t)(-1))
 
#define GATE_SOCKET_TYPE_TCP4   0x001 /* IPv4 TCP */
 
#define GATE_SOCKET_TYPE_UDP4   0x002 /* IPv4 UDP */
 
#define GATE_SOCKET_TYPE_ICMP4   0x004 /* IPv4 ICMP */
 
#define GATE_SOCKET_TYPE_TCP6   0x101 /* IPv6 TCP */
 
#define GATE_SOCKET_TYPE_UDP6   0x102 /* IPv6 UDP */
 
#define GATE_SOCKET_TYPE_ICMP6   0x104 /* IPv6 ICMP */
 
#define GATE_SOCKET_SELECT_FLAG_RECEIVE   0x01
 
#define GATE_SOCKET_SELECT_FLAG_SEND   0x02
 
#define GATE_SOCKET_SELECT_FLAG_ERROR   0x04
 
#define GATE_SOCKET_FLAG_PEEK   0x0001 /* read data without removing it from receive queue */
 
#define GATE_SOCKET_FLAG_OOB   0x0002 /* send Out-Of-Band data */
 
#define GATE_SOCKET_FLAG_WAITALL   0x0004 /* wait until the full buffer is processed */
 
#define GATE_SOCKET_FLAG_DONTROUTE   0x0008 /* disable routing on the sent message */
 
#define GATE_SOCKET_FLAG_EOR   0x0010 /* End-Of-Record, send termination of message indicator */
 
#define GATE_SOCKET_FAMILY_NONE   0
 
#define GATE_SOCKET_FAMILY_UNIX   1
 
#define GATE_SOCKET_FAMILY_INET4   2
 
#define GATE_SOCKET_FAMILY_IPX   6
 
#define GATE_SOCKET_FAMILY_APPLETALK   16
 
#define GATE_SOCKET_FAMILY_NETBIOS   17
 
#define GATE_SOCKET_FAMILY_ATM   22
 
#define GATE_SOCKET_FAMILY_INET6   23
 
#define GATE_SOCKET_FAMILY_IRDA   26
 
#define GATE_SOCKET_FAMILY_BTH   32
 
#define GATE_SOCKET_MSGTYPE_NONE   0
 
#define GATE_SOCKET_MSGTYPE_STREAM   1
 
#define GATE_SOCKET_MSGTYPE_DATAGRAM   2
 
#define GATE_SOCKET_MSGTYPE_RAW   3
 
#define GATE_SOCKET_PROTOCOL_IP   0
 
#define GATE_SOCKET_PROTOCOL_ICMP   1
 
#define GATE_SOCKET_PROTOCOL_IGMP   2
 
#define GATE_SOCKET_PROTOCOL_TCP   6
 
#define GATE_SOCKET_PROTOCOL_UDP   17
 
#define GATE_SOCKET_PROTOCOL_IP6   41
 
#define GATE_SOCKET_PROTOCOL_ICMP6   58
 
#define GATE_SOCKET_BACKLOG_DEFAULT   (-1)
 

Typedefs

typedef gate_intptr_t gate_socket_t
 
typedef struct gate_socket_select_entry_class gate_socket_select_entry_t
 
typedef struct gate_socket_ip4address_class gate_socket_ip4address_t
 
typedef struct gate_socket_ip6address_class gate_socket_ip6address_t
 
typedef struct gate_socket_ip4endpoint_class gate_socket_ip4endpoint_t
 
typedef struct gate_socket_ip6endpoint_class gate_socket_ip6endpoint_t
 
typedef struct gate_socket_unixendpoint_class gate_socket_unixendpoint_t
 
typedef struct gate_socket_endpoint_class gate_socket_endpoint_t
 

Enumerations

enum  GATE_SOCKET_OPTION {
  GATE_SOCKET_OPTION_BLOCKING = 1 , GATE_SOCKET_OPTION_TCPNODELAY = 2 , GATE_SOCKET_OPTION_KEEPALIVE = 3 , GATE_SOCKET_OPTION_BROADCAST = 4 ,
  GATE_SOCKET_OPTION_RECEIVETIMEOUT = 5 , GATE_SOCKET_OPTION_SENDTIMEOUT = 6
}
 

Functions

GATE_NET_API int gate_compare_socket (void const *item1, void const *item2)
 
GATE_NET_API gate_result_t gate_socket_init ()
 
GATE_NET_API gate_result_t gate_socket_create (gate_int16_t type, gate_socket_t *sock)
 
GATE_NET_API gate_result_t gate_socket_create_ex (gate_int16_t family, gate_int16_t msgtype, gate_int16_t protocol, gate_socket_t *sock)
 
GATE_NET_API gate_result_t gate_socket_connect (gate_socket_t sock, gate_socket_endpoint_t const *ep)
 
GATE_NET_API gate_result_t gate_socket_connect_address (gate_socket_t sock, gate_string_t const *address)
 
GATE_NET_API gate_result_t gate_socket_bind (gate_socket_t sock, gate_socket_endpoint_t const *ep)
 
GATE_NET_API gate_result_t gate_socket_bind_address (gate_socket_t sock, gate_string_t const *address)
 
GATE_NET_API gate_result_t gate_socket_listen (gate_socket_t sock, gate_int32_t backlog)
 
GATE_NET_API gate_result_t gate_socket_accept (gate_socket_t sock, gate_socket_t *newsock)
 
GATE_NET_API gate_result_t gate_socket_receive (gate_socket_t sock, char *buffer, gate_size_t bufferlen, gate_size_t *bufferused)
 
GATE_NET_API gate_result_t gate_socket_receive_from (gate_socket_t sock, gate_socket_endpoint_t *ep, char *buffer, gate_size_t bufferlen, gate_size_t *bufferused, gate_uint16_t flags)
 
GATE_NET_API gate_result_t gate_socket_send (gate_socket_t sock, char const *buffer, gate_size_t bufferlen, gate_size_t *bufferprocessed)
 
GATE_NET_API gate_result_t gate_socket_send_block (gate_socket_t sock, char const *buffer, gate_size_t bufferlen, gate_size_t *bufferprocessed)
 
GATE_NET_API gate_result_t gate_socket_send_to (gate_socket_t sock, gate_socket_endpoint_t const *to, char const *buffer, gate_size_t bufferlen, gate_size_t *bufferprocessed, gate_uint16_t flags)
 
GATE_NET_API gate_result_t gate_socket_select (gate_socket_t const *socks, gate_size_t sockcount, gate_uint8_t *statusflags, gate_uint32_t timeout)
 
GATE_NET_API gate_result_t gate_socket_shutdown (gate_socket_t sock, gate_bool_t shutdownreceive, gate_bool_t shutdownsend)
 
GATE_NET_API gate_result_t gate_socket_close (gate_socket_t sock)
 
GATE_NET_API gate_result_t gate_socket_get_option (gate_socket_t sock, gate_int32_t level, gate_int32_t option, void *buffer, gate_size_t *bufferlen)
 
GATE_NET_API gate_result_t gate_socket_set_option (gate_socket_t sock, gate_int32_t level, gate_int32_t option, void const *buffer, gate_size_t bufferlen)
 
GATE_NET_API gate_result_t gate_socket_set (gate_socket_t sock, GATE_SOCKET_OPTION option, gate_int32_t value)
 
GATE_NET_API gate_result_t gate_socket_get_local_endpoint (gate_socket_t sock, gate_socket_endpoint_t *ep)
 
GATE_NET_API gate_result_t gate_socket_get_local_address (gate_socket_t sock, gate_string_t *address)
 
GATE_NET_API gate_result_t gate_socket_get_remote_endpoint (gate_socket_t sock, gate_socket_endpoint_t *ep)
 
GATE_NET_API gate_result_t gate_socket_get_remote_address (gate_socket_t sock, gate_string_t *address)
 
GATE_NET_API gate_result_t gate_socket_parse_ip4 (gate_string_t const *ip4text, gate_socket_ip4address_t *ip4address)
 
GATE_NET_API gate_result_t gate_socket_parse_ip6 (gate_string_t const *ip6text, gate_socket_ip6address_t *ip6address)
 
GATE_NET_API gate_result_t gate_socket_parse_address (gate_string_t const *address, gate_string_t *host, gate_uint16_t *port, gate_int16_t *family)
 
GATE_NET_API gate_result_t gate_socket_parse_endpoint (gate_string_t const *address, gate_socket_endpoint_t *endpoint)
 
GATE_NET_API gate_result_t gate_socket_print_endpoint (gate_socket_endpoint_t const *endpoint, gate_string_t *address)
 
GATE_NET_API gate_result_t gate_socket_load_endpoint (void const *ptr_in_native_sock_addr, gate_socket_endpoint_t *ptr_out_endpoint)
 
GATE_NET_API gate_result_t gate_socket_save_endpoint (gate_socket_endpoint_t const *ptr_src_endpoint, void *ptr_out_native_sock_addr)
 

Detailed Description

Network socket library.