1. 概述
在《mongoose V7.4源码剖析之响应客户端报文(九)》一文中,我们详细地描述了mongoose服务器是如何响应客户端数据的过程。它是先将待响应数据写入与该连接套接字fd
相关联的变量c
中成员send
的指针变量成员buf
所执行的内存缓冲区中。然后通过mg_mgr_poll()
轮询监听函数,遍历mgr管理链表中的每一个连接节点(struct mg_connection
类型)c
,并通过判断该变量c
中的成员send
中的成员len
的值否大于0
,从而决定是否将该套接字fd
加入到select()
多路I/O监听函数中。
如果加入到了select()
函数,并且监听到该套接字fd
有写事件发送时,才调用write_conn()
将send
成员中指针