电脑版
首页

搜索 繁体

23 python 实现 select 和 epoll 模型 socket 网络编程

热门小说推荐

最近更新小说

这里简单搞搞 select 和 eopll 的接口开发 ~

select 目前几乎在所有的平台上支持,其良好跨平台支持也是它的一个优点,事实上从现在看来,这也是它所剩不多的优点之一,现在其实更多的人用 epoll,在 python 下 epoll 文档有点少,就先讲究搞搞 select ~

select 的一个缺点在于单个进程能够监视的文件描述符的数量存在最大限制,在 Linux 上一般为 1024,不过可以通过修改宏定义甚至重新编译内核的方式提升这一限制。

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

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

服务端的代码:

#coding:utf-8import socket,selectimport timeimport os #xiaorui.cchost = "localhost"port = 50000s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)s.bind((host,port))s.listen(5)while 1: infds,outfds,errfds = select.select([s,],,,5) if len(infds) != 0:clientsock,clientaddr = s.acceptbuf = clientsock.recv(8196)if len(buf) != 0: print (buf) os.popen(\'sleep 10\').read clientsock.close # print "no data coming"

Loading...

未加载完,尝试【刷新】or【退出阅读模式】or【关闭广告屏蔽】。

尝试更换【Firefox浏览器】or【Chrome谷歌浏览器】打开多多收藏!

移动流量偶尔打不开,可以切换电信、联通、Wifi。

收藏网址:www.ziyungong.cc

(>人<;)