[Note: This page does not describe the callback or zero copy interfaces,
which are available for expert users.]
FreeRTOS_recv()
is used to receive data from a TCP socket.
FreeRTOS_recv() cannot be
called until the TCP socket has been created, configured, bound
and connected to a remote socket.
The source code below demonstrates how to use FreeRTOS_recv() to place
received data into a buffer. In the example it is assumed that the
socket has already been created and connected.
#define BUFFER_SIZE 512
static void prvEchoClientRxTask( void *pvParameters )
{
Socket_t xSocket;
static char cRxedData[ BUFFER_SIZE ];
BaseType_t lBytesReceived;
xSocket = ( Socket_t ) pvParameters;
for( ;; )
{
lBytesReceived = FreeRTOS_recv( xSocket, &cRxedData, BUFFER_SIZE, 0 );
if( lBytesReceived > 0 )
{
prvProcessData( cRxedData, lBytesReceived );
}
else if( lBytesReceived == 0 )
{
}
else
{
FreeRTOS_shutdown( xSocket, FREERTOS_SHUT_RDWR );
break;
}
}
while( FreeRTOS_recv( xSocket, pcBufferToTransmit, xTotalLengthToSend, 0 ) >= 0 )
{
vTaskDelay( pdTICKS_TO_MS( 250 ) );
}
FreeRTOS_closesocket( xSocket );
xTaskDelete( NULL );
}
Example using FreeRTOS_recv()
<<
Back to the RTOS TCP networking tutorial index
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.