Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何使用recvfrom()获取recvmsg()返回的标志_Linux_Sockets - Fatal编程技术网

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

Linux 如何使用recvfrom()获取recvmsg()返回的标志,linux,sockets,Linux,Sockets,我必须使用recvfrom()从多个接口接收消息(编译时未知,并且需要保留消息的确切顺序,而不是使用单个系统调用依次从每个接口接收消息),但我还需要访问仅recvmsg()提供的一些标志(通过调用修改的消息头的flags字段) 有没有一种方法可以使用recvfrom()来填充类似于recvmsg()的msgheader?recvmsg()是recvfrom()的函数超集,就像recvfrom()是recv()的函数超集一样。换句话说,recvmsg()是这三个函数中功能最强大的一个,使用另外两个

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

有没有一种方法可以使用
recvfrom()
来填充类似于
recvmsg()
msgheader

recvmsg()
recvfrom()
的函数超集,就像
recvfrom()
recv()
的函数超集一样。换句话说,
recvmsg()
是这三个函数中功能最强大的一个,使用另外两个函数可以执行的所有操作都可以使用
recvmsg()
执行

特别是,
recvfrom()
的主要功能是返回接收到的消息的发送者的地址。使用
recvmsg()
时,同样的信息也可用:查看
struct msghdr
msg_name
msg_namelen
元素是
recvfrom()
的函数超集,就像
recvfrom()
recv()
的函数超集一样。换句话说,
recvmsg()
是这三个函数中功能最强大的一个,另外两个函数的所有功能都可以通过
recvmsg()
实现


特别是,
recvfrom()
的主要功能是返回接收到的消息的发送者的地址。使用
recvmsg()
时,同样的信息可用:查看
msg_name
msg_namelen
struct msghdr的
recvmsg()元素
recvfrom()的函数超集?我很确定如果你使用
recvmsg()
你会在
struct msghdr
结构中得到发送者地址。你说得对;如果你需要这些要点,介意把它作为答案提交吗?
recvmsg()
不是
recvfrom()的函数超集吗
?我很确定,如果您使用
recvmsg()
,您将在
struct msghdr
结构中获得发件人地址。您是对的;如果您需要积分,是否愿意将其作为答案提交?