[ ]
Real time embedded FreeRTOS mailing list 
Homepage FreeRTOS Labs FreeRTOS+TCP FreeRTOS+FAT Contact / Enquiries


FreeRTOS+TCP V2 is now included in the main FreeRTOS kernel download under the MIT license.

FreeRTOS_closesocket()

[FreeRTOS+TCP API Reference]

FreeRTOS_sockets.h
BaseType_t FreeRTOS_closesocket( Socket_t xSocket );
		

Close a socket.

The function is named FreeRTOS_closesocket() rather than simply FreeRTOS_close() to avoid potential name space collisions with functions in FreeRTOS+IO.

A socket should be shutdown gracefully before it is closed, and cannot be used after it has been closed.

Parameters:

xSocket   The handle of the socket being closed. The socket must have already been created (see FreeRTOS_socket()), and cannot be used after it has been closed.

Returns:

0 is always returned.

Although FreeRTOS+TCP does not [currently] use the return value in a meaningful way, the return value is included in the function prototype to ensure consistency with the expected standard Berkeley sockets API, and to ensure compatibility with future versions of FreeRTOS+TCP.

Example usage:


/* FreeRTOS+TCP sockets include. */
#define "FreeRTOS_sockets.h"

void aFunction( void )
{
Socket_t xSocket;

    /* Create a socket. */
    xSocket = FreeRTOS_socket( FREERTOS_AF_INET, FREERTOS_SOCK_DGRAM, FREERTOS_IPPROTO_UDP );

    if( xSocket != FREERTOS_INVALID_SOCKET )
    {
        /*
         * The socket can now be used...
         */

         /* . . . */

         /* Initialise a shutdown before closing the socket. */
         FreeRTOS_shutdown( xSocket );

        /* Wait for the socket to disconnect gracefully (indicated by FreeRTOS_recv()
        returning a FREERTOS_EINVAL error) before closing the socket. */
        while( FreeRTOS_recv( xSocket, pcBufferToTransmit, xTotalLengthToSend, 0 ) >= 0 )
        {
            /* Wait for shutdown to complete.  If a receive block time is used then
            this delay will not be necessary as FreeRTOS_recv() will place the RTOS task
            into the Blocked state anyway. */
            vTaskDelay( pdTICKS_TO_MS( 250 ) );

            /* Note - real applications should implement a timeout here, not just
            loop forever. */
        }

         /* Close the socket again. */
         FreeRTOS_closesocket( xSocket );
    }
}

						
Example use of the FreeRTOS_closesocket() API function


[ Back to the top ]    [ About FreeRTOS ]    [ FreeRTOS Labs Sitemap ]    [ Main FreeRTOS Sitemap ]    [ ]




Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.