socket.recvmsg игнорирует ancbufsize, вспомогательные данные - PullRequest
1 голос
/ 29 мая 2019

Используя сокет TCP, в Unix-системе python, похоже, полностью игнорирует мой ancbufsize.

data, ancdata, msg_flags, address = sock.recvmsg(1, socket.CMSG_LEN(4))

Со страницы руководства Linux для recvmsg:

size_t msg_controllen;/ * буфер вспомогательных данных len * /

Если я выпрямляю свою программу, я вижу, что msg_controllen равен 0, я, похоже, не могу ничего сделать, чтобы получить ненулевое значение.Есть ли какой-то другой пакет, который мне нужно установить?Выполнение довольно скромного centos7

Вот мой вызов recvmsg в моем выводе strace:

recvmsg(3, {msg_name(0)=0x7ffcc97e2c90, msg_iov(1)=[{"\360", 1}], msg_controllen=0, msg_flags=0}, 0) = 1

Возвращает только msg_iov и не имеет вспомогательных данных, предположительно потому, что msg_controllen равен 0.

вышеупомянутый возвращает "360"

1 Ответ

0 голосов
/ 30 мая 2019

Как работают вспомогательные данные в sendmsg ()?

Я думаю, что вспомогательные данные никогда не отправляются через сокет TCP, что расстраивает, что их нет во многих документах, включая документы на сокет python, документы c или даже книгу APUE

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...