整了好常时间还不是太准确epoll的工作原理
都说epoll可以维护或者说监听多个socket但是在实际操作的时候老是有顾虑
1.我先假设这是客户端想向多个服务器端建立连接发送数据,创建一个epollfd
epollfd=epoll_create(MAXCOUNTS);
创建一个struct epoll_event ev,
ev.data.fd=socket1;
ev.events=EPOLLIN|EPOLLET;
epoll_ctl(epollfd,EPOLL_CTL_ADD,socket1,&ev);
假若我还想创建一个socket2并将它注册到epoll中去当然还应该是原来的epollfd,但是struct epoll_event ev
是不是该另外创建个ev2
ev2.data.fd=socket2;
ev2.events=EPOLLIN|EPOLLET;
epoll_ctl(epollfd,EPOLL_CTL_ADD,socket2,&ev2);
2.还有在epoll_wait的时候struct epoll_event events[MAXEVENTS];
nfds=epoll_wait(epfd,events,MAXEVENTS,500);
MAXEVENTS的大小是不是应该是MAXCOUNTS(换句话说是events·[]中只用来保存发生事件的socket的个数)
epoll编程中向epoll中注册socket
-
- 帖子: 448
- 注册时间: 2008-07-10 15:08
- xhy
- 帖子: 3916
- 注册时间: 2005-12-28 1:16
- 系统: Ubuntu 12.10 X64
- 来自: 火星
-
- 帖子: 448
- 注册时间: 2008-07-10 15:08
Re: epoll编程中向epoll中注册socket
xhy,
是我容易理解,
那不是应该是什么那?
events[n].
这个n有谁限制哪?不会是自由限制吧?
是我容易理解,
那不是应该是什么那?
events[n].
这个n有谁限制哪?不会是自由限制吧?