下载 FreeRTOS
 

出色的 RTOS & 嵌入式软件

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

FreeRTOS_inet_addr_quick()

[FreeRTOS-Plus-TCP API 引用]

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


/* 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_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
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.