[ ]
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_inet_addr_quick()

[FreeRTOS+TCP API Reference]

FreeRTOS_sockets.h
uint32_t FreeRTOS_inet_addr_quick( uint8_t ucOctet1, uint8_t ucOctet2,
                                   uint8_t ucOctet3, uint8_t ucOctet4 );
		

FreeRTOS_inet_addr_quick() is a macro that converts an IP address expressed as four separate numeric octets (for example 192, 168, 0, 100) into a an IP address expressed as a 32-bit number in network byte order

FreeRTOS_inet_addr() is a function that converts an IP address expressed in decimal dot notation (for example "192.168.0.100") into a 32-bit IP address in network byte order.

FreeRTOS_inet_addr_quick() is the preferred method because of its smaller size and faster execution. FreeRTOS_inet_addr() is provided because it conforms to the expected Berkeley sockets function prototype.

Parameters:

ucOctet1   The first octet of the four octet IP address.

ucOctet2   The second octet of the four octet IP address.

ucOctet3   The third octet of the four octet IP address.

ucOctet4   The forth octet of the four octet IP address.

Returns:

The IP address represented by the four parameters expressed as a single 32-bit number in network byte order.

Example usage:

This example sends a string to port 5000 of IP address 192.168.0.100, using FreeRTOS_inet_addr_quick() to convert the IP address from individual octets to a string in the necessary 32-bit format. The socket is passed in as the function parameter, and is assumed to have already been created using a call to FreeRTOS_socket(). If ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND is not set to 1 in FreeRTOSIPConfig.h, then the socket is also assumed to have been bound to a port number using FreeRTOS_bind().


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

void aFunction( Socket_t xSocket )
{
struct freertos_sockaddr xDestinationAddress;
const int8_t *pcMessageToSend = "String being sent";

    /* Generate the destination address. */
    xDestinationAddress.sin_addr = FreeRTOS_inet_addr_quick( 192, 168, 0, 100 );
    xDestinationAddress.sin_port = FreeRTOS_htons( 5000 );

    /* Send the message. */
    iReturned = FreeRTOS_sendto(
                                    /* The socket being send to. */
                                    xSocket,
                                    /* The data being sent. */
                                    pcMessageToSend,
                                    /* The length of the data being sent. */
                                    strlen( pcMessageToSend ),
                                    /* ulFlags with the FREERTOS_ZERO_COPY bit clear. */
                                    0,
                                    /* Where the data is being sent. */
                                    &xDestinationAddress,
                                    /* Not used but should be set as shown. */
                                    sizeof( xDestinationAddress )
                               );
}
						
Example use of the FreeRTOS_inet_addr_quick() 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.