在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 | 发送/接收描述字 发送/接收用户凭证 |
struct cmsghdr {
socklen_t cmsg_len;//length in bytes, including this structure
int cmsg_level;//originating protocol
int cmsg_type;//protocol-specific type
};