Overview
PSL1GHT’s networking API closely follows the Berkeley sockets standard, making it familiar to developers with Unix/Linux networking experience. The library supports both IPv4 and IPv6 sockets.Initialization
netInitialize
Returns 0 on success, non-zero on error.
netDeinitialize
Returns 0 on success, non-zero on error.
netInitializeNetworkEx
Pointer to network initialization parameters:
memory- Pointer to memory poolmemory_size- Size of memory poolflags- Initialization flags
Returns 0 on success, non-zero on error.
netFinalizeNetwork
Returns 0 on success, non-zero on error.
Socket Creation
netSocket
Address family:
AF_INET(2) - IPv4AF_INET6(24) - IPv6AF_UNIX(1) - Unix domain sockets
Socket type:
SOCK_STREAM(0x0001) - TCP stream socketSOCK_DGRAM(0x0002) - UDP datagram socketSOCK_RAW(0x0003) - Raw socket
Protocol number (usually 0 for default).
Returns socket descriptor on success, negative value on error.
netClose
Socket descriptor to close.
Returns 0 on success, negative value on error.
Connection Management
netBind
Socket descriptor.
Pointer to address structure.
Size of address structure.
Returns 0 on success, negative value on error.
netListen
Socket descriptor.
Maximum length of pending connections queue.
Returns 0 on success, negative value on error.
netAccept
Listening socket descriptor.
Pointer to address structure to receive client address (can be NULL).
Pointer to address length (can be NULL).
Returns new socket descriptor for accepted connection on success, negative value on error.
netConnect
Socket descriptor.
Pointer to remote address structure.
Size of address structure.
Returns 0 on success, negative value on error.
netShutdown
Socket descriptor.
Shutdown mode:
SHUT_RD(0) - Further receives disallowedSHUT_WR(1) - Further sends disallowedSHUT_RDWR(2) - Further sends and receives disallowed
Returns 0 on success, negative value on error.
Data Transfer
netSend
Socket descriptor.
Pointer to data buffer to send.
Length of data to send.
Send flags (MSG_OOB, MSG_DONTROUTE, etc.).
Returns number of bytes sent on success, negative value on error.
netRecv
Socket descriptor.
Pointer to buffer to receive data.
Maximum length of data to receive.
Receive flags (MSG_PEEK, MSG_WAITALL, etc.).
Returns number of bytes received on success, 0 on connection close, negative value on error.
netSendTo
Socket descriptor.
Pointer to data buffer to send.
Length of data to send.
Send flags.
Pointer to destination address.
Size of destination address structure.
Returns number of bytes sent on success, negative value on error.
netRecvFrom
Socket descriptor.
Pointer to buffer to receive data.
Maximum length of data to receive.
Receive flags.
Pointer to address structure to receive source address (can be NULL).
Pointer to address length (can be NULL).
Returns number of bytes received on success, negative value on error.
Socket Options
netGetSockOpt
Socket descriptor.
Protocol level (e.g., SOL_SOCKET).
Option name (e.g., SO_REUSEADDR, SO_KEEPALIVE).
Pointer to buffer to receive option value.
Pointer to option value length.
Returns 0 on success, negative value on error.
netSetSockOpt
Socket descriptor.
Protocol level (e.g., SOL_SOCKET).
Option name.
Pointer to option value.
Size of option value.
Returns 0 on success, negative value on error.
Multiplexing
netSelect
Highest socket descriptor + 1.
Set of sockets to check for readability.
Set of sockets to check for writability.
Set of sockets to check for errors.
Timeout value (NULL for blocking).
Returns number of ready sockets on success, 0 on timeout, negative value on error.
netPoll
Array of pollfd structures.
Number of elements in fds array.
Timeout in milliseconds (-1 for infinite).
Returns number of ready sockets on success, 0 on timeout, negative value on error.
Address Information
netGetSockName
Socket descriptor.
Pointer to address structure to be filled.
Pointer to address length.
Returns 0 on success, negative value on error.
netGetPeerName
Socket descriptor.
Pointer to address structure to be filled.
Pointer to address length.
Returns 0 on success, negative value on error.
Host Resolution
netGetHostByName
Hostname to resolve.
Returns pointer to hostent structure on success, NULL on error.
netGetHostByAddr
Pointer to binary address.
Length of address.
Address type (AF_INET or AF_INET6).
Returns pointer to hostent structure on success, NULL on error.
Error Handling
Error Codes
Network functions return negative error codes. Common errors include:NET_EWOULDBLOCK(35) - Operation would blockNET_EINPROGRESS(36) - Operation in progressNET_ECONNREFUSED(61) - Connection refusedNET_ETIMEDOUT(60) - Connection timed outNET_ENOTCONN(57) - Socket not connectedNET_EISCONN(56) - Socket already connected
netErrnoLoc
Returns pointer to errno variable.
net_errno macro to access the error value: