通过前面对linux下的C语言的学习,现在有了基本的linux下的编程能力。
这个项目旨在了解什么是协议,顺便联系之前学习的内容。
这个项目分为两个部分介绍:
第一部分:http服务器的基本框架和并发的实现
第二部分:http协议的处理
http服务器的基本框架和并发的实现
先介绍一下这个http服务器的框架
这个框架,是仿照ngnix中处理并发访问时提供的多进程和多路复用的想法搭建的。
在做这个框架之前,我查了一下一个socket的未决连接队列是由进程管理还是由内核管理,最后在其他的分享上,看到了对listen函数的介绍。这个机制决定了能否使用上述框架实现并发处理。
listen(2)函数的深入介绍
当一个socket创建了一个套接口之后,它被假设(这个不懂)为一个主动套接口,可以使用connect发起连接。listen函数可以把一个为连接的套接口转变为一个(被动)监听套接口。内核为每一个监听套接口分配了两个队列,未完成连接队列,完成连接队列(未决连接队列)。转自点击跳转
注意未决连接队列由内核维护,所以当多个进程向一个监听套接口使用accept函数的时候,操作的是同一个未决队列。
在这个基础上,就可以使用多进程来处理并发。
在这里提供的代码中,注释非常的详细,各个文件的对应关系,在readme中。
屠龙宝刀,点击就送
C++学习笔记day36~day38-----UC-实现一个http服务器
最新推荐文章于 2024-10-07 21:37:30 发布