linux – sendmsg()中的辅助数据如何工作?
sendmsg()允许将辅助数据发送到另一个套接字,我想知道这是如何工作的.
1)辅助数据是否与正常消息一起打包? 2)如果是这样,远程接收套接字如何知道如何解析它? 3)远程接收客户端如何检索此辅助数据? 谢谢. 解决方法
辅助数据不会在线路上发送 – 绝不会.对于Unix域套接字,辅助数据用于在进程之间发送或接收文件描述符以共享或负载平衡任务.注意:Unix域套接字在同一台机器上运行的进程之间传输信息,而不是在不同机器上运行的进程之间传递信息.
同样,如果进程在不同的机器上运行:当在发送机器(或接收机器)上应用辅助概念时,不使用任何辅助概念的数据包将与数据包完全相同.因此,辅助数据不是您的数据包附带的东西. 辅助数据用于从内核到用户空间应用程序接收与EXTRA分组相关的服务/信息,否则这是不可用的.例如,假设机器B在线路上收到一些数据包,你想知道数据包到达的入口接口?你怎么知道的?辅助数据来救援. 辅助数据是辅助控制缓冲区中设置的一种标志,在调用sendmsg()/ recvmsg()时传递给内核,它告诉内核当数据包发送或到达时,应该向应用程序调用提供哪些额外的服务/信息电话. 辅助数据是指内核和用户空间应用程序之间的通信或在UNIX套接字的情况下在同一台机器上的进程之间的通信.它不是线上数据包的东西. 供您参考,下载代码示例here,它在我的ubuntu机器上运行完美.辅助数据概念在src / igmp_pkt_reciever.c中演示. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |