一. 大纲
1. 从本章开始构建基于IO多路复用的服务器.
2. 略微的学习使用select ,poll略过.之后最终以epoll为主.
3. 因此会补充大量的前置知识,如下会标出.
4. 同时本书(Unix Network Programming)也会在学完第6章后暂时告一段落.
5. 部分章节仅仅是阅读了一遍,下次系统学习本书时应该着重细看:UDP相关的第8章,第13章 守护进程和inetd超级服务器,
6. 部分章节第本次学习没有时间看了,下次应该重点学习: 第22章 高级UDP套接字编程,第28章的原始套接字,第30章的客户/服务器程序设计范式
7. 不需要看的内容: SCTP内容全部略过.
8. 其他内容应该在用到时再去看,平时不用专门去看.
二. 为服务器主机做的配置工作
1.学习/proc/sys/net/ipv4里的文件
2.修改各种文件的默认配置
三. 复习学习string.h头文件
到了这里,第一个笔记(小本)上的内容基本可以认认真真的系统的再看一遍了.
四. 五种IO模型
没啥说的.必会.书上内容包括示意图都要清清楚楚明明白白.
五. select相关略微了解
1.
- select 和 struct timeval
- FD_ZERO,FD_SET,FD_CLR,FD_ISSET 4个测试fd_set的宏
- 描述符就绪条件(读/写都要会)
2.
shutdown函数
3. 基于select的IO多路复用服务器
没时间详细学习了,直接去做基于epoll的,构建完整的web服务器,实现定时器,日志等系统,最后进行压测优化,测量QPS.源代码最终放入github.
六. 至此,第一轮对UNP的学习结束了.
第一轮学习:2020年11月1日 – 11月29日.
第二轮学习预计在秋招前开始,大约半年后.