Na今天就简单说说关于python下的socket的select和eopll的接口开发 ~


select模型目前几乎在所有的平台上支持,其良好跨平台支持也是它的一个优点,事实

上从现在看来,这也是它所剩不多的优点之一,现在其实更多的人用epoll,在

python下epoll文档有点少,epoll也是包含在import select库内的,那就先讲究搞搞select ~

那首先要标注下,文章的原文地址 blog.xiaorui.cc

select的一个缺点在于单个进程能够监视的文件描述符的数量存在最大限制,在

Linux上一般为1024,不过可以通过修改宏定义甚至重新编译内核的方式提升这一

限制。

说点我的理解,要是用烦了多线程的网络编程,可以试试select的模型。

传递给 select 的参数是这么几个列表,分别表示读事件、写事件和错误事件。select 方法返回三个列表,其中包含满足条件的对象(读、写和异常)。


关于服务端的代码:

客户端的代码:

一个完成的select的例子:

这里有队列的概念

关于epoll的方面,大家可以看看这个老外的文档,写不错 ~


select是轮询、epoll是基于事件触发式的,epoll的效率要高于select。

参考的文档地址:http://scotdoyle.com/python-epoll-howto.html

下面是用epoll实现一个服务端 ~



Epoll的最大好处是不会随着FD的数目增长而降低效率,在select中采用轮询处理,每个fd的处理情况,而epoll是维护一个队列,直接看队列是不是空就可以了。


在这里也推荐大家用epoll写服务端的东西,当然我自己理解的不够好,咱们多交流 !!!



对Python及运维开发感兴趣的朋友可以加QQ群 : 478476595 !!!

另外如果大家觉得文章对你有些作用!   帮忙点击广告. 一来能刺激我写博客的欲望,二来好维护云主机的费用.
如果想赏钱,可以用微信扫描下面的二维码. 另外再次标注博客原地址  xiaorui.cc  ……   感谢!

python实现多进程监听同一个socket的prefork服务端模型

这两天迁移数据,没时间写博客了……   正好这两天跟同事聊了下prefork模式,就拿出来聊聊。。。 如果你跟我一样是python程序员,我很建议...

阅读全文

大并发下socket通信连接时会导致TCP自连接

    今天是2015的第二天了, 心情有些不佳,遇到的狗屎问题更是心情不爽 !还好妈蛋的给解决了 !     问题提示说大不大,说小不小...

阅读全文