在Unix系统上,使用TCP套接字,python似乎完全忽略了我的ancbufsize。
data, ancdata, msg_flags, address = sock.recvmsg(1, socket.CMSG_LEN(4))
从recvmsg的Linux手册页中:
如果我跟踪我的程序,我看到msg_controllen为0,我似乎无法做任何事情来使其具有非零值。我还需要安装其他软件包吗?运行漂亮的股票centos7
这是我的strace输出中的recvmsg调用:
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”
最佳答案
How does ancillary data in sendmsg() work?
我认为辅助数据永远不会通过TCP套接字发送,令人沮丧的是许多文档中都未列出,包括python套接字文档,c消息文档甚至APUE书籍