FreeRTOS+TCP is still in the lab
FreeRTOS+TCP is already used in
commercial products and we encourage
you to try it yourself.
Be aware however that we are
still refining its design, and the
source code and documentation do not
yet meet Real Time Engineers Ltd's strict quality standards.
Please use the forum for support,
feedback and ideas,
or contact us directly if you have a specific business interest.
BaseType_t FreeRTOS_listen( Socket_t xSocket, BaseType_t xBacklog );
Places a TCP socket into a state where it is listening for and can accept
incoming connection requests from remote sockets.
The socket must first have been successfully created by a call to
and bound to a port using a call to
By default a new socket (a child socket) will be created to handle any accepted connections.
The new socket will be returned by
and can be used immediately. The child socket inherits all the properties
from the parent socket.
Optionally the FREERTOS_SO_REUSE_LISTEN_SOCKET parameter can be used
with a call to FreeRTOS_setsockopt()
to configure the parent socket to
handle any accepted connections itself - without creating a child socket
for this purpose. This is a useful way to save resources when the socket will
only handle a single connection at a time. For example, if the socket
is used to implement a telnet server that only permits one simultaneous
The handle of the socket being placed into the Listening
state. The socket
must have already been created using a call to
and bound to a port number using a call to
In the default case where a new socket is created for each
new connection the backlog value puts a limit on the
number of simultaneously connected clients.
If the the socket was successfully placed into the listening state then
0 is returned.
If xSocket is not a valid TCP socket then then -pdFREERTOS_ERRNO_EOPNOTSUPP is
If xSocket is not in bound but closed state then -pdFREERTOS_ERRNO_EOPNOTSUPP is returned.
Note that, because FreeRTOS does not implement errno, the
behaviour in the presence of an error is necessarily different to that of
connect() functions that are fully compliant with the expected Berkeley
See the "Creating, configuring and binding a TCP server socket" source
code example in the
"Creating Configuring and Binding TCP Client and Server Sockets"
section of the FreeRTOS+TCP networking tutorial pages.