SOCKADDR_INET 在 golang 中

SOCKADDR_INET in golang

我有一个字节数组,实际上由内核中的 C++ 函数填充了 SOCKADDR_INET 结构,在转移到用户模式后,我需要将它编组到 SOCKADDR_INET 等价物的切片中。系统调用包包含 sockaddr_in 和 sockaddr_in6,但正如我所见,golang 缺少一个联合来模拟 SOCKADDR_INET。我是 golang 的新手,所以想知道这个案例的正确解决方案。

末尾的 si_family 字段标识字节是否应解释为 IPv4 或 IPv6 SOCKADDR 结构。

最简单的方法是制作一个函数,根据 si_family 的值将字节解组为 SOCKADDR_INSOCKADDR_IN6 结构的 go 版本。