NetSock_Accept
Wait for new socket connections on a listening server socket (see function NetSock_Listen()). When a new connection arrives and the TCP handshake has successfully completed, a new socket ID is returned for the new connection with the remote host’s address and port number returned in the socket address structure.
Files
net_sock.h/net_sock.cnet_bsd.h/net_bsd.c
Prototypes
NET_SOCK_ID NetSock_Accept(NET_SOCK_ID sock_id,
NET_SOCK_ADDR *p_addr_remote,
NET_SOCK_ADDR_LEN *p_addr_len,
NET_ERR *p_err);
int accept ( int sock_id,
struct sockaddr *p_addr_remote,
socklen_t *p_addr_len);
Arguments
sock_id
This is the socket ID returned by NetSock_Open()/socket() when the socket was created. This socket is assumed to be bound to an address and listening for new connections (see function NetSock_Listen()).
p_addr_remote
Pointer to a socket address structure (see section 9-1 “Network Socket Data Structures”) to return the remote host address of the new accepted connection.
p_addr_len
Pointer to the size of the socket address structure which must be passed the size of the socket address structure [e.g., sizeof(NET_SOCK_ADDR_IPv4)]. Returns size of the accepted connection’s socket address structure, if no errors; returns 0, otherwise.
p_err
Pointer to variable that will receive the return error code from this function:
NET_SOCK_ERR_NONENET_ERR_FAULT_NULL_PTRNET_SOCK_ERR_NONE_AVAILNET_SOCK_ERR_NOT_USEDNET_SOCK_ERR_CLOSEDNET_SOCK_ERR_INVALID_SOCKNET_SOCK_ERR_INVALID_FAMILYNET_SOCK_ERR_INVALID_TYPENET_SOCK_ERR_INVALID_STATENET_SOCK_ERR_INVALID_OPNET_SOCK_ERR_CONN_ACCEPT_Q_NONE_AVAILNET_SOCK_ERR_CONN_SIGNAL_TIMEOUTNET_SOCK_ERR_CONN_FAILNET_SOCK_ERR_FAULTNET_INIT_ERR_NOT_COMPLETEDNET_ERR_FAULT_LOCK_ACQUIRE
Returned Value
Returns a non-negative socket descriptor ID for the new accepted connection, if successful; NET_SOCK_BSD_ERR_ACCEPT/-1, otherwise.
If the socket is configured for non-blocking, a return value of NET_SOCK_BSD_ERR_ACCEPT/-1 may indicate that the no requests for connection were queued when NetSock_Accept()/accept() was called. In this case, the server can “poll” for a new connection at a later time.
Required Configuration
Available only if NET_TCP_CFG_EN is enabled (see section TCP Layer Configuration).
Notes / Warnings
See section Network Sockets Concepts for socket address structure formats.