python之网络I/O操作模块

1.select模块

select()和poll()函数可以在大多数操作平台上运行,epoll()只能在linux上运行。

exception select.error
模块异常

select.devpoll()
仅在Solaris和衍生产品上受支持。返回/dev/poll轮询对象

select.epoll(sizehint=-1, flags=0)
返回边沿轮询对象,可用作I / O事件的边沿或级别触发接口。

select.poll()
返回一个轮询对象,它支持注册和取消注册文件描述器,然后轮询它们的I / O事件;有关轮询对象支持的方法

select.kqueue()
仅在BSD上支持,返回一个内核队列对象

select.kevent(ident, filter=KQ_FILTER_READ, flags=KQ_EV_ADD, fflags=0, data=0, udata=0)
仅在BSD上支持,返回内核事件对象

select.select(rlist, wlist, xlist[, timeout])
这是Unix select()系统调用的简单接口。前三个参数是“等待对象”的序列:使用名为fileno()的无参数方法表示文件描述器或对象的整数返回这样一个整数:

  • rlist:等待准备读取
  • wlist:等待准备写入
  • xlist:等待“异常条件”

select.PIPE_BUF
当管道已报告为准备写入select(),poll()或另一个接口时,可以写入的最小字节数而不会阻塞到管道这个模块。这不适用于其他类型的文件状对象,如套接字。
返回值是准备好的对象列表的三倍:前三个参数的子集。当超时到达没有文件描述器变为准备好时,返回三个空列表。

Polling Objects

Kqueue Objects

Kevent Objects

2.selectors模块

这个模块允许高层高效的 I/O 多路复用,建立在 select 模块原函数基础之上。

class selectors.SelectorKey
SelectorKey 是一个用来将文件对象关联到其底层文件描述符,选定的事件掩码和附加的数据的 namedtuple。它由 BaseSelector 的几种方法返回。

  • fileobj():注册的文件对象
  • fd():底层的文件描述符
  • events():该文件对象必须等待的事件
  • data:可选的与此文件对象关联的不透明数据:例如可以用来存储每个客户端的会话id

class selectors.BaseSelector
BaseSelector 用来等待多个文件对象的I/O 事件的准备。它支持文件流注册、 注销和带可选超时值的等待这些流的 I/O 事件的方法。它是一个抽象的基类,因此不能实例化。使用 DefaultSelector来替代 或者用 SelectSelector,KqueueSelector 等。如果您想要明确使用一种实现,和您的平台支持它。BaseSelector 和其具体的实现支持 上下文管理器 协议。

class selectors.DefaultSelector
默认选择器类使用在当前平台上可用的最有效的实现。这应该是大多数用户的默认选择。

class selectors.SelectSelector
基于select.select()的选择器。

class selectors.PollSelector
基于select.poll()的选择器。

class selectors.EpollSelector
基于select.epoll()的选择器

class selectors.DevpollSelector
基于select.devpoll()的选择器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值