linux - 如何使用 recvfrom() 获取 recvmsg() 返回的标志

标签 linux sockets

我必须使用 recvfrom() 从多个接口(interface)接收(在编译时未知,并且还需要保留消息的确切顺序,而不是使用单独的系统调用从每个接口(interface)接收反过来),但我还需要访问一些只有 recvmsg() 提供的标志(通过调用修改的消息 header 的 flags 字段)。

有没有办法使用recvfrom()来填充一个类似于recvmsg()msgheader

最佳答案

recvmsg()recvfrom() 的功能超集,就像 recvfrom()recv 的功能超集一样()。换句话说,recvmsg() 是三个函数中最强大的,您可以用其他两个函数做的所有事情您也可以用 recvmsg() 做。

特别是,recvfrom() 的主要功能是它返回所接收消息的发件人地址。当您使用 recvmsg() 时可以获得相同的信息:查看 struct msghdrmsg_namemsg_namelen 元素>.

关于linux - 如何使用 recvfrom() 获取 recvmsg() 返回的标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15874145/

相关文章:

C/unix 套接字 : Segmentation fault (core dumbed) due to char pointer(? )

java - gnu.mail.providers.nntp.NNTPMessage 的容器类

c - pthread 唤醒执行

c - 解析文本文件时出现段错误

python - "the following packages will be superseded by a higher priority channel"是什么意思?

linux - 查找当前按窗口 Id 打开的 gnome 终端选项卡的数量

vb.net - VB.NET 代码到 Linux 平台的转换器是否存在?

sockets - Pub Sub 实现零 mq 3.xx

Windows 对每台机器同时打开的套接字/连接数的限制

java - C# 服务器套接字通过 NAT 到 Android 套接字