下载 FreeRTOS
 

出色的 RTOS & 嵌入式软件

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

创建、配置和绑定 UDP 套接字
FreeRTOS-Plus-TCP 联网教程节选

UDP 套接字 是使用 FreeRTOS_socket() API 函数 创建的,其中函数的 xType(第二个)参数设置为 FREERTOS_SOCK_DGRAM,xProtocol (第三个)参数 设置为 FREERTOS_IPPROTO_UDP。它们使用 FreeRTOS_setsockopt() 函数 进行配置,并绑定到端口 (如有必要),绑定所使用的是 FreeRTOS_bind() 函数。


static void prvSimpleUDPServerTask( void *pvParameters )
{
long lBytes;
struct freertos_sockaddr xBindAddress;
Socket_t xListeningSocket;
const TickType_t xSendTimeOut = 200 / portTICK_PERIOD_MS;

/* Attempt to open the UDP socket. */
xListeningSocket = FreeRTOS_socket( FREERTOS_AF_INET,
/* Use FREERTOS_AF_INET6 for IPv6 UDP socket */
FREERTOS_SOCK_DGRAM,
/*FREERTOS_SOCK_DGRAM for UDP.*/
FREERTOS_IPPROTO_UDP );

/* Check for errors. */
configASSERT( xListeningSocket != FREERTOS_INVALID_SOCKET );

/* Ensure calls to FreeRTOS_sendto() timeout if a network buffer cannot be
obtained within 200ms. */

FreeRTOS_setsockopt( xListeningSocket,
0,
FREERTOS_SO_SNDTIMEO,
&xSendTimeOut,
sizeof( xSendTimeOut ) );

/* Bind the socket to port 0x1234. */
xBindAddress.sin_port = FreeRTOS_htons( 0x1234 );
FreeRTOS_bind( xListeningSocket, &xBindAddress, sizeof( xBindAddress ) );

for( ;; )
{
/*
* The socket can now send and receive data here.
*/

}
}

Creating, configuring and binding a UDP socket



<< 返回 RTOS TCP 联网教程索引

Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.