1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
struct epoll_event ev; ev.events |= EPOLLIN; epoll_ctl(efd, EPOLL_CTL_ADD, listenfd, &ev);
int clientfd = accept(listenfd, addr, sz); struct epoll_event ev; ev.events |= EPOLLIN; epoll_ctl(efd, EPOLL_CTL_ADD, clientfd, &ev);
int connectfd = socket(AF_INET, SOCK_STREAM, 0); connect(connectfd, (struct sockaddr *)&addr,sizeof(addr));
struct epoll_event ev; ev.events |= EPOLLOUT; epoll_ctl(efd, EPOLL_CTL_ADD, connectfd, &ev);
if (status == e_connecting && e->events & EPOLLOUT) { status == e_connected; epoll_ctl(epfd, EPOLL_CTL_DEL, connectfd, NULL); }
|