lsn24多路复用课堂笔记_第1页
lsn24多路复用课堂笔记_第2页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第22次这两种编程方式都不能处理多个客户端的并况。select: poll: intselect(intnfds,fd_set*readfds,fd_set*writefds,fd_set*exceptfds,structtimevalvoidFD_SET(intfd,fd_setfdsetvoidFD_CLR(intfd,fd_setsetvoidFD_ZERO(fd_setFD_ISSET(intfd,fd_setintpoll(structpollfd*fds,nfds_tnfds,intselect默认定义了 1024,默认的情况下只能支持 1024 个 socket 的管理。核的 s

2、elect 管理的 fd_set,发生频繁从用户态的数据 copy 到内核里面。 intepfd=epoll_create(intintepfd=epoll_create1(intintepoll_ctl(intepfd,intop,intfd,structepoll_eventopEPOLL_CTL_ADD,fd 添加到epollopEPOLL_CTL_DEL,fdepollopEPOLL_CTL_MOD,fdepollstructepoll_event/* Epoll events */ epoll_data_t data;/*Userdatavariable*/typedefunioni

3、ntcnt=epoll_wait(intepfd,structepoll_event*events,intmaxevents,int 直到返回后,所有的事件都在events里面,events的size是epoll_wait的返回值elseif(eventsi.data.fd=sfd),如果是服务端的socket返回了,说明有客户端连接进来了,此时需要调用 at 去接受连接,并且 a t 返回-1 且 errno 是 EAGAIN 或者 EWOULDBLOCK 则代表需要继续处理,并不是一种异常。a t 之后,需要调用epoll_ctlADDsocketepollread0socketclos(

4、fdTCP 的四次挥手:客户端发送 FIN 包,只是说客户端不再能够发送任何应用层的数据,客户端收到 ACK(1)就buf = abcdefgepoll 的设计:(events,O(lgn件系统设置的。epollsocketepoll_wait此时 epoll_wait 的 event 指向了这个双向链表。epoll_wait内核文件系统,内核文件系统如果需要设置文件的事件的时候,会调用 callback - callback() epoll / select / pollT: epoll,所有的 soketepoll多个线程是不是是不是可以拥有不同的 epoll? T1:epoll_fd1 1,2,3,4,5,6 master_socket,T2:epoll_fd211,12,13,14,15,16,T3 : epoll_fd3 21,22,23,24,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论