下载 FreeRTOS
 

出色的 RTOS & 嵌入式软件

最新资讯
FreeRTOS-Plus-TCP 现具有统一的 IPv4 和 IPv6 功能,支持多接口。
为基于 FreeRTOS 的固件实现防砖化 MCU FOTA:
宣布停止支持 FreeRTOS 202012 LTS。
FreeRTOS 网站现已提供简体中文版本
新的 FreeRTOS Long Term Support 版本现已发布。

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.