相关知识点记录:
listen中blog参数介绍
/* limit the "backlog" parameter to fit in an u8_t */
backlog = LWIP_MIN(LWIP_MAX(backlog, 0), 0xff);
err = netconn_listen_with_backlog(sock->conn, (u8_t)backlog);
1、其backlog是一个建议值,用于指定内部的队列大小,以控制同时建立的连接请求数量。
2、针对控制连接这个需求,有两种方法实现这个backlog:
(1)单一队列来控制连接。队列中既包含了SYN_RCVD的状态,也包含了ESTABLISHED状态。accept只处理后面一种状态。如果三次握手中的ACK到来,则会在队列中直接改其状态。显然,这时backlog为这一队列的长度。
(2)两个单独队列来控制。两种状态分别实现单独的队列。显然这种情况下,两个队列都必须有明确的大小限制,backlog只能限制其中一个。
tcpip协议栈相关知识链接:
lwip socket探秘之listen
lwip socket探秘之bind
lwip socket探秘之socket创建
lwip socket探秘之accept
lwip socket探秘之recv
来源:CSDN
作者:销声匿迹。
链接:https://blog.csdn.net/qq_44455716/article/details/103704076