Real time embedded FreeRTOS RSS feed 
Real time embedded FreeRTOS mailing list 
Homepage FreeRTOS+ Products FreeRTOS Labs Integration Services Contact / Enquiries

FreeRTOS_inet_addr()

[FreeRTOS Embedded IP Stack API]

FreeRTOS_sockets.h
uint32_t FreeRTOS_inet_addr( const uint8_t * pucIPAddress );
		

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 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_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.

ipconfigINCLUDE_FULL_INET_ADDR must be set to 1 in FreeRTOSIPConfig.h for FreeRTOS_inet_addr() to be available. FreeRTOS_inet_addr_quick() is always available.

Parameters:

pucIPAddress   A pointer to a string that contains the IP address being converted in decimal dot format.

Returns:

If the format of the string pointed to by the pucIPAddress parameter is valid then the same IP address expressed as a 32-bit number in network byte order is returned. In all other cases 0 is returned.

Example usage:

This example sends a string to port 5000 of IP address 192.168.0.100, using FreeRTOS_inet_addr() to convert the IP address from a string to 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+UDP sockets include */
#define "FreeRTOS_sockets.h"

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

    /* Generate the destination address. */
    xDestinationAddress.sin_addr = FreeRTOS_inet_addr( "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+ Sitemap ]    [ Main FreeRTOS Sitemap ]    [ ]


Copyright (C) 2004-2010 Richard Barry. Copyright (C) 2010-2016 Real Time Engineers Ltd.
Any and all data, files, source code, html content and documentation included in the FreeRTOSTM distribution or available on this site are the exclusive property of Real Time Engineers Ltd.. See the files license.txt (included in the distribution) and this copyright notice for more information. FreeRTOSTM and FreeRTOS.orgTM are trade marks of Real Time Engineers Ltd.