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.