21#define VL_SOCKET_NULL ((vl_socket)0)
36typedef enum vl_socket_domain_
45typedef enum vl_socket_type_
54typedef enum vl_socket_shutdown_
67typedef enum vl_socket_result_
106typedef struct vl_socket_address_
303VL_API vl_int64_t
vlSocketSend(vl_socket socket,
const void* buffer, vl_memsize_t length);
328VL_API vl_int64_t
vlSocketReceive(vl_socket socket,
void* buffer, vl_memsize_t length);
392 vl_uint8_t d, vl_uint16_t port);
VL_BOOL_T vl_bool_t
Definition vl_numtypes.h:191
VL_INT_T vl_int_t
Standard signed integer type.
Definition vl_numtypes.h:153
vl_socket_type
Supported socket kinds.
Definition vl_socket.h:46
@ VL_SOCKET_TYPE_STREAM
Definition vl_socket.h:47
@ VL_SOCKET_TYPE_DATAGRAM
Definition vl_socket.h:48
VL_API vl_bool_t vlSocketAddressToString(const vl_socket_address *address, char *buffer, vl_memsize_t bufferSize)
Converts a socket address to a human-readable string.
Definition vl_socket_posix.c:494
VL_API vl_bool_t vlSocketAddressSetIPv6(vl_socket_address *address, const vl_uint8_t ipv6Bytes[16], vl_uint16_t port)
Fills a socket address with an IPv6 address and port.
Definition vl_socket_posix.c:339
VL_API vl_socket_result vlSocketStartup(void)
Initializes the process-wide socket subsystem.
Definition vl_socket_posix.c:37
vl_socket_shutdown
Shutdown direction for a socket.
Definition vl_socket.h:55
@ VL_SOCKET_SHUTDOWN_SEND
Definition vl_socket.h:57
@ VL_SOCKET_SHUTDOWN_RECEIVE
Definition vl_socket.h:56
@ VL_SOCKET_SHUTDOWN_BOTH
Definition vl_socket.h:58
VL_API vl_socket vlSocketNew(vl_socket_domain domain, vl_socket_type type)
Creates a new socket.
Definition vl_socket_posix.c:44
VL_API vl_socket_result vlSocketBind(vl_socket socket, const vl_socket_address *address)
Binds a socket to a local address.
Definition vl_socket_posix.c:80
VL_API vl_socket_result vlSocketGetKeepAlive(vl_socket socket, vl_bool_t *outEnabled)
Checks if TCP keep-alive probes are enabled.
Definition vl_socket_posix.c:430
vl_uint16_t port
Definition vl_socket.h:109
VL_API vl_int64_t vlSocketReceive(vl_socket socket, void *buffer, vl_memsize_t length)
Receives bytes from a connected socket.
Definition vl_socket_posix.c:243
VL_API vl_socket_result vlSocketSetNoDelay(vl_socket socket, vl_bool_t enabled)
Configures whether the Nagle algorithm is disabled for a TCP socket.
Definition vl_socket_posix.c:366
vl_socket_domain
Supported socket address families.
Definition vl_socket.h:37
@ VL_SOCKET_DOMAIN_IPV4
Definition vl_socket.h:38
@ VL_SOCKET_DOMAIN_IPV6
Definition vl_socket.h:39
VL_API void vlSocketDelete(vl_socket socket)
Closes and deletes a socket handle.
Definition vl_socket_posix.c:72
VL_API vl_socket_result vlSocketShutdown(vl_socket socket, vl_socket_shutdown how)
Shuts down part or all of a full-duplex connection.
Definition vl_socket_posix.c:262
VL_API vl_socket_result vlSocketGetNoDelay(vl_socket socket, vl_bool_t *outEnabled)
Checks if the Nagle algorithm is disabled for a TCP socket.
Definition vl_socket_posix.c:413
VL_API vl_socket_result vlSocketSetBlocking(vl_socket socket, vl_bool_t blocking)
Configures whether a socket operates in blocking mode.
Definition vl_socket_posix.c:292
vl_socket_domain domain
Definition vl_socket.h:108
VL_API vl_socket_result vlSocketGetRemoteAddress(vl_socket socket, vl_socket_address *outAddress)
Retrieves the remote address that the socket is connected to.
Definition vl_socket_posix.c:457
VL_API vl_socket_result vlSocketConnect(vl_socket socket, const vl_socket_address *address)
Connects a socket to a remote address.
Definition vl_socket_posix.c:187
VL_API void vlSocketShutdownLibrary(void)
Shuts down the process-wide socket subsystem.
Definition vl_socket_posix.c:39
vl_socket_result
Result codes for socket operations.
Definition vl_socket.h:68
@ VL_SOCKET_ERROR_RECEIVE
Definition vl_socket.h:81
@ VL_SOCKET_ERROR_ACCEPT
Definition vl_socket.h:78
@ VL_SOCKET_ERROR_ALLOCATION
Definition vl_socket.h:73
@ VL_SOCKET_ERROR_WOULD_BLOCK
Definition vl_socket.h:86
@ VL_SOCKET_ERROR_CONNECT
Definition vl_socket.h:79
@ VL_SOCKET_ERROR_NOT_INITIALIZED
Definition vl_socket.h:72
@ VL_SOCKET_ERROR_SHUTDOWN
Definition vl_socket.h:82
@ VL_SOCKET_ERROR_LISTEN
Definition vl_socket.h:77
@ VL_SOCKET_ERROR_BIND
Definition vl_socket.h:76
@ VL_SOCKET_ERROR_SET_OPTION
Definition vl_socket.h:84
@ VL_SOCKET_ERROR_NOT_CONNECTED
Definition vl_socket.h:87
@ VL_SOCKET_ERROR_ADDRESS_FAMILY
Definition vl_socket.h:88
@ VL_SOCKET_ERROR_SYSTEM
Definition vl_socket.h:89
@ VL_SOCKET_ERROR_CREATE
Definition vl_socket.h:75
@ VL_SOCKET_ERROR_SEND
Definition vl_socket.h:80
@ VL_SOCKET_ERROR_INVALID_ARGUMENT
Definition vl_socket.h:71
@ VL_SOCKET_ERROR_CLOSE
Definition vl_socket.h:83
@ VL_SOCKET_SUCCESS
Definition vl_socket.h:69
VL_API vl_socket vlSocketAccept(vl_socket socket, vl_socket_address *outAddress)
Accepts an incoming connection from a listening socket.
Definition vl_socket_posix.c:131
VL_API vl_socket_result vlSocketGetLocalAddress(vl_socket socket, vl_socket_address *outAddress)
Retrieves the local address that the socket is bound to.
Definition vl_socket_posix.c:583
VL_API vl_socket_result vlSocketIsBlocking(vl_socket socket, vl_bool_t *outBlocking)
Checks if a socket is in blocking mode.
Definition vl_socket_posix.c:447
VL_API vl_bool_t vlSocketAddressFromString(vl_socket_address *address, const char *string)
Parses a human-readable string into a socket address.
Definition vl_socket_posix.c:525
VL_API const char * vlSocketError(void)
Returns a human-readable description of the most recent socket error.
Definition vl_socket_posix.c:455
VL_API vl_socket_result vlSocketListen(vl_socket socket, vl_int_t backlog)
Marks a stream socket as a passive listening socket.
Definition vl_socket_posix.c:117
VL_API vl_socket_result vlSocketGetReuseAddress(vl_socket socket, vl_bool_t *outEnabled)
Checks if local address reuse is enabled for a socket.
Definition vl_socket_posix.c:396
VL_API vl_bool_t vlSocketAddressSetIPv4(vl_socket_address *address, vl_uint8_t a, vl_uint8_t b, vl_uint8_t c, vl_uint8_t d, vl_uint16_t port)
Fills a socket address with an IPv4 address and port.
Definition vl_socket_posix.c:323
VL_API vl_socket_result vlSocketSetReuseAddress(vl_socket socket, vl_bool_t enabled)
Configures whether local address reuse is enabled for a socket.
Definition vl_socket_posix.c:351
VL_API vl_socket_result vlSocketSetKeepAlive(vl_socket socket, vl_bool_t enabled)
Configures whether TCP keep-alive probes are enabled.
Definition vl_socket_posix.c:381
VL_API vl_int64_t vlSocketSend(vl_socket socket, const void *buffer, vl_memsize_t length)
Sends bytes through a connected socket.
Definition vl_socket_posix.c:228
Portable socket address structure.
Definition vl_socket.h:107
Opaque socket handle.
Definition vl_socket_posix.c:13