网络编程学习笔记(辅助数据)

在sendmsg和recvmsg时使用msghdr结构中的msg_control和msg_controllen成员发送的接收辅助数据。辅助数据的另一种叫法是控制信息。

协议 cmsg_level cmsg_type 说明
IPv4 IPPROTO_IP IP_RECVDSTADDR或IP_RECVIF 接收UDP数据报的目的地址
接收UDP数据报接口索引
IPv6 IPPROTO_IPV6 IPV6_DSTOPTS
IPV6_HOPLIMIT
IPV6_HOPOPTS
IPV6_NEXTHOP
IPV6_PKTINFO
IPV6_RTHDR
指定/接收目标选项
指定/接收跳限
指定/接收步跳选项
指定下一跳地址
指定/接收分组信息
指定/接收路由头部
Unix域 SOL_SOCKET SCM_RIGHTS
SCM_CREDS
发送/接收描述字
发送/接收用户凭证
辅助数据由一个或多个辅助数据对象组成,每个对象由一个cmsghdr结构开头,该结构在<sys/socket.h>文件中定义如下:

struct cmsghdr {
    socklen_t cmsg_len;//length in bytes, including this structure
    int cmsg_level;//originating protocol
    int cmsg_type;//protocol-specific type
};


你可能感兴趣的:(网络编程学习笔记(辅助数据))