下载 FreeRTOS
 

出色的 RTOS & 嵌入式软件

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

FreeRTOS_bind()

[FreeRTOS-Plus-TCP API 引用]

FreeRTOS_sockets.h
BaseType_t FreeRTOS_bind( Socket_t xSocket,
                          struct freertos_sockaddr *pxAddress,
                          socklen_t xAddressLength );
		
将套接字与本地端口号绑定。 绑定套接字会将套接字与 本地 IP 地址上的端口号关联起来,导致套接字接收 所有发送到该 IP 地址和端口号组合的数据。

关于套接字绑定的介绍,可参阅 嵌入式网络基础 和术语表页面的 网络寻址和绑定部分。

49408 (0xC100) 到 65280 (0xff00) 以上的端口号被认为是 私有号码, 用于 IP 堆栈的动态分配, 因此,应避免使用。 指定端口号为 0 或将 pxAddress 传递为 NULL,将导致套接字绑定到私有范围的 端口号上。

为方便起见,如果 ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND 在 FreeRTOSIPConfig.h 中被设置为 1,则在未先绑定到端口号的套接字上调用 FreeRTOS_send() , 也会导致该套接字被绑定到私有范围的端口号上。

FreeRTOS-Plus-TCP [当前]未使用所有函数参数。 未使用的参数保留在函数的原型中, 确保与预期的标准伯克利套接字 API 一致, 并确保与 FreeRTOS-Plus-TCP 的未来版本兼容。

参数:

xSocket   正在绑定到地址的套接字的句柄。 套接字 必须是先前创建的, 且是通过调用 FreeRTOS_socket() 创建的。

pxAddress   指向 freertos_sockaddr 结构体的指针, 包含绑定的端口号的详细信息 。 请参阅提供的示例。

xAddressLength   当前未使用,但应设置为 sizeof (struct freertos_sockaddr),以确保未来的 兼容性。

返回:

返回 0,表示绑定成功(0 是标准伯克利套接字的 成功返回值,与 FreeRTOS 标准相反,FreeRTOS 用 0 表示失败!)。

返回 -pdFREERTOS_ERRNO_EINVAL,表示套接字未被绑定,可能是 因为指定的端口号已在使用中。

返回 -pdFREERTOS_ERRNO_ECANCELED,表示调用 RTOS 任务未收到来自 IP RTOS 任务对绑定请求的响应。

用法示例:

参阅 FreeRTOS-Plus-TCP 联网教程 页面和 FreeRTOS_socket() API 文档页面的示例。

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