epoll模式 server端,使用gdb调试,没有任何客户端连接的情况下.epoll_wait就收到listenfd的事件。
这种现象是因为listenfd的epollevent使用了ev.events = EPOLLIN|EPOLLOUT;导致写事件产生。
写事件是只要缓冲区可写就触发。EPOLLOUT应该改为EPOLLET.
EPOLLOUT:4
EPOLLRDHUP:8192
EPOLLPRI:2
EPOLLERR:8
EPOLLHUP:16
EPOLLET:-2147483648
EPOLLONESHOT:1073741824
这种现象是因为listenfd的epollevent使用了ev.events = EPOLLIN|EPOLLOUT;导致写事件产生。
写事件是只要缓冲区可写就触发。EPOLLOUT应该改为EPOLLET.
事件值:
EPOLLIN:1EPOLLOUT:4
EPOLLRDHUP:8192
EPOLLPRI:2
EPOLLERR:8
EPOLLHUP:16
EPOLLET:-2147483648
EPOLLONESHOT:1073741824