FreeRTOS_sockets.h
uint32_t FreeRTOS_inet_addr( const uint8_t * pucIPAddress );
FreeRTOS_inet_addr() 函数可将以点分十进制表示的 IP 地址
(例如 "192.168.0.100")转换为
以网络字节顺序表示的 32 位 IP 地址。
FreeRTOS_inet_addr_quick()
宏可将以四个独立数字八位字节表示的 IP 地址
(例如 192, 168, 0, 100)转换为
以网络字节顺序表示的 32 位数字的 IP 地址。
FreeRTOS_inet_addr_quick() 是首选方法,因为它更
小巧而且执行速快。 之所以提供 FreeRTOS_inet_addr(),
是因为该函数符合预期的伯克利套接字函数原型。
FreeRTOSIPConfig.h 中,ipconfigINCLUDE_FULL_INET_ADDR 必须设置为 1,
才能使用 FreeRTOS_inet_addr()。 FreeRTOS_inet_addr_quick()
始终可用。
参数:
pucIPAddress
|
指向字符串的指针,该字符串包含
要转换的点分十进制格式的 IP 地址。
|
返回:
如果 pucIPAddress 参数指向的字符串的格式
有效,则返回以网络字节顺序表示的 32 位数字的同一 IP 地址
。 在所有其他情况下,返回 0。
用法示例:
在该示例中,向 IP 地址为 192.168.0.100 的端口 5000 发送了一个字符串,其中使用
FreeRTOS_inet_addr() 将 IP 地址从字符串转换为必要的
32 位格式。
套接字作为函数参数传入,并假定已经
通过调用 FreeRTOS_socket() 创建。
如果 ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND 在
FreeRTOSIPConfig.h 中未设置为 1,则套接字也假定为已
使用 FreeRTOS_bind() 绑定到一个端口号。
#include "FreeRTOS_sockets.h"
void aFunction( Socket_t xSocket )
{
struct freertos_sockaddr xDestinationAddress;
const int8_t *pcMessageToSend = "String being sent";
xDestinationAddress.sin_addr = FreeRTOS_inet_addr( "192.168.0.100" );
xDestinationAddress.sin_port = FreeRTOS_htons( 5000 );
iReturned = FreeRTOS_sendto(
xSocket,
pcMessageToSend,
strlen( pcMessageToSend ),
0,
&xDestinationAddress,
sizeof( xDestinationAddress )
);
}
Example use of the FreeRTOS_inet_addr_quick() API function
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.