简单IO通道库

yet-another-io-channels-librar的Python项目详细描述


频道Build StatuscodecovBCH compliancedonate using paypal

提供统一的文件对象和套接字的简单包装 两者的接口。

示例:

pipe_chan = PipeChannel(sys.stdin.fileno(), sys.stdout.fileno())
sock_chan = SocketChannel(socket.create_connection(('127.0.0.1', 8080))

课程

通道

频道是不同频道的基类。每个频道 实现以下方法:

read(self)

执行非阻塞读取并返回任何可用字节。提高 EndpointClosedException如果通道关闭。

write(self, *data)

将字节块写入通道。引发EndpointClosedException

close(self)

关闭频道并释放资源。

get_fd(self)

返回可用于pollepoll用于阅读。引发NotImplementedErrorif(自定义)通道 不支持阅读。

每个通道都有一个buffering属性(只读)。等于 'line'用于线路缓冲信道。否则应该是'bytes' 但是除了'line'之外的任何值都可以工作。

实现了以下通道类:

管道

PipeChannel(faucet=None, sink=None, *, buffering='bytes')

faucet应该是打开读取的文件描述符。sink应该 是一个打开用于写入的文件描述符。如果两者都提供,则 频道是双向的。将faucet设置为非阻塞模式。

如果buffering设置为'line',则通道使用行缓冲 阅读。如果没有完成,每个read调用都将返回b'' 即使有任何数据也可用。如果通道关闭 但是缓冲区中有数据,对read的调用将返回 缓冲直至耗尽。最后一行可能是不完整的行(不 '\n'最后)。

socketchannel

SocketChannel(sock, *, buffering='bytes')

为非阻塞IO包装插槽。有关更多信息,请参见pipechannel buffering参数。

测试通道

(在封装通道中。测试)

TestChannel(*, buffering='bytes')

有关buffering参数的详细信息,请参见pipechannel。

提供putget方法来将数据馈送到read并获取 分别为“书面”数据。

轮询器

poller是select.poll的包装器,它还支持接受和 跟踪TCP/Unix客户端。

Poller(*, buffering='bytes')

创建轮询器对象。所有接受的客户端通道都继承 buffering参数。

register(self, channel)

注册用于轮询的通道。

add_server(self, sock)

注册服务器套接字。轮询器将接受传入连接和 自动注册客户端。

unregister(self, channel)

删除已注册的频道。如果频道不在 注册的。

close_all(self)

关闭所有注册的频道和服务器。

poll(self, timeout=None)

执行对select.poll()的单个调用。timeout是 轮询的秒数或无限轮询的秒数。返回值是 通道的对列表格式为(data, channel),服务器套接字的对列表格式为((addr, client_channel), sock)addr取决于套接字 键入。对于基于线路的信道,单个poll调用将返回一个 每个可用行的结果。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何拆分字符串(基于各种分隔符),但不保留空格?   解析。Json格式的txt文件和knime中的java   java Spring rest api为什么在rest api调用的响应中更改了数据类型   升华文本3抛出java。lang.ClassNotFoundException,而记事本++不存在   java Android指纹扫描仪在尝试5次后停止工作?   java Android如何设置精确的重复报警?   java如何使用HTTPGET connect为access API输入用户名和密码   java当测试报告显示没有测试失败时,Gradle为什么说“有失败的测试”?   用Gson实现java获取响应   MapReduce程序中函数错误的java不可映射参数   java spring安全性不符合自动代理的条件   java GWT使用异步回调进行同步/阻塞调用   java奇怪的类数组问题无法在jsp中显示   如何在java中使用PrinterJob使用epl打印条形码   java如何在JTable中居中单元格   将Java Mockito测试转换为Kotlin   html Java正则表达式模式匹配到多个相同标记   testCompile中缺少java Gradle(Android)多项目依赖项   在输入提示后输入字符串时发生java FileNotFoundException