下载 FreeRTOS
 

出色的 RTOS & 嵌入式软件

最新资讯
简化任何设备的身份验证云连接。
利用 CoAP 设计节能型云连接 IoT 解决方案。
11.0.0 版 FreeRTOS 内核简介:
FreeRTOS 路线图和代码贡献流程。
使用 FreeRTOS 实现 OPC-UA over TSN。

FreeRTOS_inet_addr()

[FreeRTOS-Plus-TCP API 引用]

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() 绑定到一个端口号。


/* FreeRTOS-Plus-TCP sockets include. */
#include "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( "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
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.