前言:
Day05和Day06
移植程序之后,老师布置了另一个任务:使用多路IO复用中的select模型和epoll模型写一个服务器。
学习内容:
自己写一遍程序加深了对多路IO复用中各个函数的理解,尤其是理解了四种网络IO模型。
当有很多客户端来连接服务器时(高并发),仅仅使用accept,每次只能检测一个客户端是否连接,而使用多路IO复用(select/epoll)就可以一次监测多个客户端是否发起连接(连接后为提高效率,不让服务器所在线程来处理客户端的操作请求,而是启用线程池,在其他线程中来执行操作,如大小写转换。这就是后面要学的“线程池模型”)。
使用select模型时,为提高效率,需要将cfd放入自己创建的数组中,然后遍历数组找出发生了读写事件的cfd(避免了连遍历长度为1024的位图rset)。