當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。