下载 FreeRTOS
 

出色的 RTOS & 嵌入式软件

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

FreeRTOS_listen()

[FreeRTOS-Plus-TCP API 引用]

FreeRTOS_sockets.h
BaseType_t FreeRTOS_listen( Socket_t xSocket, BaseType_t xBacklog );
		

将 TCP 套接字置于它正在侦听的状态下,且在此状态中套接字可以接受 来自远程套接字的传入连接请求。

必须首先通过调用 FreeRTOS_socket() 成功创建套接字, 然后调用 FreeRTOS_bind() 绑定到端口。

默认情况下,将创建一个新的套接字(子套接字)来处理任何接受的连接。 新的套接字将由 FreeRTOS_accept() 返回, 并可立即使用。 子套接字会继承 父套接字的所有属性。

FREERTOS_SO_REUSE_LISTEN_SOCKET 参数可以在 调用 FreeRTOS_setsockopt() 时使用, 用以配置父套接字 处理任何接受的 连接本身,而无需创建子套接字 完成此操作。 当套接字一次只处理一个连接时, 这是一个节省资源的有用方法。 例如,如果套接字被用来 实现只允许一个同时连接的 telnet 服务器, 此时可采用此方法。

参数:

xSocket   处于侦听 状态的套接字的句柄。 套接字 须已通过 调用 FreeRTOS_socket()) 创建, 然后调用 FreeRTOS_bind()) 绑定到端口号。

xBacklog   在默认情况下,为每个新连接均创建了 新套接字,积压值会限制 同时连接的客户端数。

返回:

如果套接字成功置于侦听状态,则 返回 0。

如果 xSocket 不是有效的 TCP 套接字,则返回 -pdFREERTOS_ERRNO_EOPNOTSUPP 。

如果 xSocket 未处于绑定状态但处于关闭状态,则返回 -pdFREERTOS_ERRNO_EOPNOTSUPP。

请注意,因为 FreeRTOS 未实现 errno, 在出现错误时的行为必然与 connect() 函数的行为不同, 后者完全符合预期的伯克利 套接字行为。

用法示例:

请参阅“创建、配置和绑定 TCP 服务器套接字”源 代码示例(详见 《创建、配置和绑定 TCP 客户端和服务器套接字》 一章,隶属 FreeRTOS-Plus-TCP 网络教程页面)。

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