ChinaUnix.net
相关文章推荐:

epoll的底层实现

这只是一个线程池的框架还有许多不足 : 没有实现server->client数据发送 , 还有许多细节没有完善。 Lock.cpp : 锁的操作 , 读锁可以并发 , 写锁独占. Queue.h : 队列的封装 , 队列的读和写都加了锁的保护. Socket.cpp : 套接口的简单封装. Thread.cpp : 线程的封装实现了些简单的线程停止,运行等功能 , 启动别的线程的时候需要继承次类. Worker.cpp : 用户接口类 , 用户需继承此类。 ListenThread.cpp(继承Threa...

by ruchong - C/C++ - 2012-11-12 13:42:07 阅读(22236) 回复(34)

相关讨论

google了好久 也没找到 epoll 实现 定时器的例子。 哪位大哥 能否给个 epoll 实现多个定时器的例子,谢谢了

by 我要思考 - C/C++ - 2008-08-06 00:36:23 阅读(1592) 回复(0)

select用线程池来轮循看起来理所应当. 但要想让epoll也可以用多线程来轮循..应该怎样实现?

by cookis - C/C++ - 2011-04-09 16:39:48 阅读(10404) 回复(22)
by usbzip - C/C++ - 2008-12-11 16:15:18 阅读(3195) 回复(9)

是这样的,我想看一下epoll在linux内核中是怎样实现的,然后用grep查找相关的源代码,但只能找到头文件,硬是找不到相关的实现原理。 [quote] /linux/syscalls.h: asmlinkage long sys_epoll_create (int size); //... [/quote] 请问,怎没有实现的C文件呢?

by disheng727 - C/C++ - 2008-11-06 08:40:35 阅读(1657) 回复(9)

请问!如何实现多进程+多线程 socket select 或 epoll? 谢谢 :D

by siwen_unix - C/C++ - 2005-11-07 14:36:23 阅读(5772) 回复(15)

Linux 2.6内核中提高网络I/O性能的新方法epoll 正如我昨天在“Linux下各类TCP网络服务器的实现源代码”( http://zhoulifa.bokee.com/5345930.html )一文中提到的那样,I/O多路复用技术在比较多的TCP网络服务器中有使用,即比较多的用到select函数。 感谢chinaunix.net上朋友safedead( http://bbs.chinaunix.net/viewpro.php?uid=407631 )提醒,我今天仔细研究了一下,证实了在2.6内核中的新的I/O技术epoll。 1、为什么select是...

by jiablog - 网络技术文档中心 - 2009-01-11 00:59:06 阅读(1337) 回复(0)

发现epoll 有个问题, 连接上后,客户端连续发送两个请求,epoll 只检测到一个可读事件! 郁闷, 如果客户端是多线程,有可能同时向同一个socket发送消息,这样服务端这边的epoll就只检测到一个可读事件, 有啥办法没。 对于服务端创建的那个监听socket 可以用 while(1) { accept(); ...

by 齐得龙强更强 - C/C++ - 2009-08-24 22:30:17 阅读(5702) 回复(13)

epoll_wait函数的返回值 是不是就是poll函数中的参数 nfds?

by debuger - C/C++ - 2008-10-28 16:49:20 阅读(923) 回复(2)

server端: ev.data.fd=connfd; ev.events=epollIN|epollOUT|epollET; epoll_ctl(epfd,epoll_CTL_ADD,connfd,&ev); while(1) { nfds=epoll_wait(epfd,events,20,500); for(i=0;i<=nfds;i++) { if(events.events&epollIN) { recv(events.data.fd,line,5,0); ......... } else if(events.events&epollOUT) { do_process(); } ...

by chenzhanyiczy - C/C++ - 2009-02-04 11:11:37 阅读(2368) 回复(18)

现在有一个程序,发现很多的CLOSE_WAIT的连接,但是我的代码中使用epoll_wait(),并根据read()返回为0的情况,关闭了连接。 netstat的时候发现CLOSE_WAIT连接的Send_Q都比较大,关于Send_Q的单位是字节,还是包?Send_Q对应内核中socket的发送队列? epoll_wait()是否会丢失事件?CLOSE_WAIT说明系统已经接收到对方的FIN了,按理说epoll_wait会监听到FIN事件,在后面read()时候,返回0,这个时候再关闭socket。 在并发数比较小的时...

by CUDev - C/C++ - 2009-10-30 09:34:09 阅读(2131) 回复(6)