Debian

分享的自由

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2012年2月16日

摘要: 转自:http://blog.chinaunix.net/link.php?url=http://blog.csdn.net%2Frussell_tao%2Farticle%2Fdetails%2F7160071开发高性能网络程序时,windows开发者们言必称iocp,linux开发者们则言必称epoll。大家都明白epoll是一种IO多路复用技术,可以非常高效的处理数以百万计的socket句柄,比起以前的select和poll效率高大发了。我们用起epoll来都感觉挺爽,确实快,那么,它到底为什么可以高速处理这么多并发连接呢?先简单回顾下如何使用C库封装的3个epoll系统调用吧。1 in 阅读全文
posted @ 2012-02-16 16:17 Unix 阅读(1568) 评论(0) 推荐(1) 编辑

摘要: 当系统启动时,epoll进行初始化: 1 static int __init eventpoll_init(void) 2 { 3 mutex_init(&pmutex); 4 ep_poll_safewake_init(&psw); 5 epi_cache = kmem_cache_create(“eventpoll_epi”,sizeof(struct epitem), 6 0,SLAB_HWCACHE_ALIGN|EPI_SLAB_DEBUG| 7 SLAB_PANIC,NULL); 8 pwq_cache ... 阅读全文
posted @ 2012-02-16 16:04 Unix 阅读(3036) 评论(0) 推荐(0) 编辑

摘要: 前言本章节是用基本的Linux基本函数加上epoll调用编写一个完整的服务器和客户端例子,可在Linux上运行,客户端和服务端的功能如下:客户端从标准输入读入一行,发送到服务端服务端从网络读取一行,然后输出到客户端客户端收到服务端的响应,输出这一行到标准输出服务端代码如下:View Code 1 #include<unistd.h> 2 #include<sys/types.h> /* basic system data types */ 3 #include<sys/socket.h> /* basic socket definitions */ 4 #i 阅读全文
posted @ 2012-02-16 14:16 Unix 阅读(562) 评论(0) 推荐(0) 编辑