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
结构中获得发件人地址。您是对的;如果您需要积分,是否愿意将其作为答案提交?