If the send was successful then the number of bytes queued for sending is returned (note this may be fewer bytes than the number requested by the xTotalDataLength parameter).
If no data could be sent because the socket was closed or got closed then -pdFREERTOS_ERRNO_ENOTCONN is returned.
If no data could be sent because there was insufficient memory then -pdFREERTOS_ERRNO_ENOMEM is returned.
If no data could be sent because xSocket was not a valid TCP socket then -pdFREERTOS_ERRNO_EINVAL is returned.
If a timeout occurred before any data could be sent then -pdFREERTOS_ERRNO_ENOSPC is returned.
Note that, because FreeRTOS does not implement errno, the behaviour in the presence of an error is necessarily different to that of send() functions that are fully compliant with the expected Berkeley sockets behaviour.
See the "Creating, Configuring and Binding TCP Client and Server Sockets" section of the FreeRTOS+TCP networking tutorial pages for examples of how to prepare a TCP socket for sending data.
See the "Sending TCP Data" section of the FreeRTOS+TCP networking tutorial pages for examples of sending data to a TCP socket.
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.