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() 是一个宏,能将
以四个分开的数字八位组表达的 IP 地址(例如 192, 168, 0, 100)转换为
按网络字节顺序表示的 32 位数字的 IP 地址。
FreeRTOS_inet_addr()
是一个函数,能将以十进制点符号表示的
以点分十进制表示的 IP 地址(例如“192.168.0.100”)转换为
按网络字节顺序表示的 32 位的 IP 地址。
FreeRTOS_inet_addr_quick() 是首选方法,因为它
小巧而且执行速快。 之所以提供 FreeRTOS_inet_addr(),
它符合预期的伯克利套接字函数原型。
参数:
ucOctet1
|
四个八位组 IP 地址中的第一个八位组。
|
ucOctet2
|
四个八位组 IP 地址中的第二个八位组。
|
ucOctet3
|
四个八位组 IP 地址中的第三个八位组。
|
ucOctet4
|
四个八位组 IP 地址中的第四个八位组。
|
返回:
由四个参数表示的 IP 地址,是以网络字节顺序表示的单个
32 位数。
用法示例:
该示例向 IP 地址为 192.168.0.100 的端口 5000 发送了一个字符串,其中使用
FreeRTOS_inet_addr_quick() 将 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_quick( 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.