epoll编程中向epoll中注册socket

软件和网站开发以及相关技术探讨
回复
weihua2008
帖子: 448
注册时间: 2008-07-10 15:08

epoll编程中向epoll中注册socket

#1

帖子 weihua2008 » 2008-11-12 11:12

整了好常时间还不是太准确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的个数)
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星

Re: epoll编程中向epoll中注册socket

#2

帖子 xhy » 2008-11-12 12:53

1. 是
2. 不是
目前负债150多万
weihua2008
帖子: 448
注册时间: 2008-07-10 15:08

Re: epoll编程中向epoll中注册socket

#3

帖子 weihua2008 » 2008-11-12 13:12

xhy,
是我容易理解,
那不是应该是什么那?
events[n].
这个n有谁限制哪?不会是自由限制吧?
回复