如果套接字绑定(bind)到IN6ADDR_ANYINADDR_ANY,并且您使用诸如recvfrom()之类的调用在套接字上接收消息。有没有办法找出消息来自哪个接口(interface)?

对于IPv6链接范围消息,我希望recvfrom()的from参数将把scope_id字段初始化为接口(interface)ID。不幸的是,在我的测试程序中将其设置为0

有人知道找出此信息的方法吗?

最佳答案

除了绑定(bind)到每个接口(interface)之外,我还不知道使用IPv4的方式。

IPv6已添加IPV6_PKTINFO套接字选项以解决此缺点。启用该选项后,struct in6_pktinfo将作为辅助数据返回。

10-01 09:03
查看更多