gpt4 book ai didi

c - recvmmsg() 不填充 msghdr.msg_namelen?

转载 作者:太空狗 更新时间:2023-10-29 12:33:48 30 4
gpt4 key购买 nike

我在 recvmmsg() 返回后打印出 msghdr.msg_namelen 但它没有设置。

但是,msg_len 设置正确。

我正在监听多播流量(即数据报)。

为了让 recvmmsg() 填充 msghdr,我需要做些什么吗?

我也试过调用 recvmsg() 来代替。 msghdr 也没有填充。有什么想法吗?

最佳答案

在内核中,recvmsg() 和 recvmmsg() 都有共同的子调用,它只使用 msg_namelen 和 msg_name 作为输入参数。也就是说,你必须自己设置那些成员。

您可以尝试这样想,msg_name 是一个指向字符串区域的指针,您在调用 recvmsg() 之前提供给内核。如果不设置msg_namelen,内核将永远不知道msg_name 区域的长度,也不知道在不导致内存访问错误的情况下可以将多少字节复制到msg_name 区域。

关于c - recvmmsg() 不填充 msghdr.msg_namelen?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18732155/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com