import socket socket.CMSG_LEN(length) socket.CMSG_SPACE(length)
length
- длина получаемых данных.length
.**Функция socket.CMSG_LEN()
возвращает общую длину без завершающего заполнения элемента вспомогательных данных со связанными данными заданной длины length
.
Это значение часто можно использовать в качестве размера буфера для метода объекта сокета Socket.recvmsg()
для получения одного элемента вспомогательных данных, но RFC 3542 требует, чтобы переносимые приложения использовали функцию socket.CMSG_SPACE()
и таким образом, включали пространство для заполнения, даже если элемент будет последним в буфере.
**Функция socket.CMSG_SPACE()
возвращает размер буфера, необходимый для метода объекта сокета Socket.recvmsg()
, чтобы получить элемент вспомогательных данных со связанными данными заданной длины length
вместе с любыми завершающими заполнениями. Буферное пространство, необходимое для приема нескольких элементов, представляет собой сумму значений socket.CMSG_SPACE()
для связанных с ними длин данных. Вызывает ошибку OverflowError, если длина выходит за допустимый диапазон значений.
Обратите внимание, что некоторые системы могут поддерживать вспомогательные данные без предоставления функции socket.CMSG_SPACE()
. Также обратите внимание, что установка размера буфера с использованием результатов этой функции может не точно ограничивать количество получаемых вспомогательных данных, т.к. дополнительные данные могут уместиться в области заполнения.
Функции socket.CMSG_LEN()
и socket.CMSG_SPACE()
вызывают ошибку OverflowError
, если длина length
выходит за допустимый диапазон значений.
Доступность: большинство платформ Unix, возможно, другие.
>>> import socket >>> socket.CMSG_LEN(1024) # 1040 >>> socket.CMSG_SPACE(1024) # 1040 >>> socket.CMSG_SPACE(2048) # 2064