当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python socket.socket.recvmsg_into用法及代码示例


用法:

socket.recvmsg_into(buffers[, ancbufsize[, flags]])

从套接字接收普通数据和辅助数据,行为与recvmsg() 一样,但将非辅助数据分散到一系列缓冲区中,而不是返回一个新的字节对象。 buffers 参数必须是导出可写缓冲区的对象的可迭代对象(例如 bytearray 对象);这些将被连续的非辅助数据块填充,直到它全部被写入或没有更多的缓冲区。操作系统可以对可以使用的缓冲区数量设置限制(sysconf() value SC_IOV_MAX)。 ancbufsizeflags 参数与 recvmsg() 的含义相同。

返回值为4元组:(nbytes, ancdata, msg_flags, address),其中nbytes是写入缓冲区的非辅助数据的总字节数,ancdatamsg_flagsaddressrecvmsg()

例子:

>>> import socket
>>> s1, s2 = socket.socketpair()
>>> b1 = bytearray(b'----')
>>> b2 = bytearray(b'0123456789')
>>> b3 = bytearray(b'--------------')
>>> s1.send(b'Mary had a little lamb')
22
>>> s2.recvmsg_into([b1, memoryview(b2)[2:9], b3])
(22, [], 0, None)
>>> [b1, b2, b3]
[bytearray(b'Mary'), bytearray(b'01 had a 9'), bytearray(b'little lamb---')]

可用性:大多数 Unix 平台,可能还有其他平台。

3.3 版中的新函数。

相关用法


注:本文由纯净天空筛选整理自python.org大神的英文原创作品 socket.socket.recvmsg_into。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。