PacketConn.ReadFrom()可以提供ControlMessage包含输入接口的ifIndex。UDPConn.ReadFromUDP()返回net.UDPAddr数据报的源套接字地址(srcIP+srcPort)。但是,如何获取两个信息:输入接口 ifIndex AND远程套接字地址 (srcIP+srcPort) ?编辑:我已经解决了一个问题:https : //github.com/golang/go/issues/14362
1 回答
侃侃尔雅
TA贡献1801条经验 获得超16个赞
当底层套接字是 UDP 时,.ReadFrom() 返回一个 *net.UDPAddr 对象作为 net.Addr 结果。
因此,可以使用 .ReadFrom() 获取输入接口(如 ifIndex)和远程套接字完整端点地址(net.UDPAddr 中的 IPaddr+端口)。
// c is *ipv4.PacketConn
n, cm, srcAddr, err := c.ReadFrom(buf)
switch srcAddr.(type) {
case *net.UDPAddr:
udpAddr := srcAddr.(*net.UDPAddr)
}
- 1 回答
- 0 关注
- 292 浏览
添加回答
举报
0/150
提交
取消