现在的位置: 首页 > 综合 > 正文

lwIP(V1.3.0) RAW API函数源码分析3—-tcp_listen()函数

2013年08月15日 ⁄ 综合 ⁄ 共 2008字 ⁄ 字号 评论关闭

lwip-x.x.x/src/core/tcp.h中定义:

#define tcp_listen(pcb)  tcp_listen_with_backlog(pcb, TCP_DEFAULT_LISTEN_BACKLOG)

所以, tcp_listen(pcb) tcp_listen_with_backlog(pcb, TCP_DEFAULT_LISTEN_BACKLOG)是一回事. TCP_DEFAULT_LISTEN_BACKLOGopt.h中定义,默认值为0xFF,指明最大允许的可等待TCP监听链接个数.

位于: 位于:lwip-x.x.x/src/core/tcp.c

原型: struct tcp_pcb * tcp_listen_with_backlog(struct tcp_pcb *pcb, u8_t backlog)

功能: 使指定的连接开始进入监听状态

函数源码:

分析:这个函数从原理上看也比较简单,首先是做一些必要的检查,判断原始pcb是否已经处于连接状态,如果没有则申请一块tcp_pcb类型的内存,将原始的必要的pcb内容复制到新的pcb,设置新的pcb状态为LISTEN,释放原始的pcb,并将新pcb连接放入已监听队列.

抱歉!评论已关闭.