SOCKADDR_INET在Golang中的翻译是什么?

huangapple go评论87阅读模式
英文:

SOCKADDR_INET in golang

问题

我有一个字节数组,实际上是由内核中的C++函数填充的SOCKADDR_INET结构。在传输到用户模式后,我需要将其封送到等效的SOCKADDR_INET切片中。syscall包中包含sockaddr_in和sockaddr_in6,但我发现golang缺乏一个联合体来模拟SOCKADDR_INET。作为一个新手,我想知道这种情况下的正确解决方案。

英文:

I have a byte array that is actually filled with SOCKADDR_INET structures by C++ function in the kernel, after transfer to user mode I need to marshal it in the slice of SOCKADDR_INET equivalent. The syscall package contains sockaddr_in and sockaddr_in6 but as I see golang has a lack of a union to emulate SOCKADDR_INET. I'm new in golang so wondering about the right solution for this case.

答案1

得分: 1

si_family字段在结尾处标识字节应该被解释为IPv4还是IPv6的SOCKADDR结构。

最简单的方法可能是创建一个函数,将字节解组成SOCKADDR_INSOCKADDR_IN6结构的Go版本,具体取决于si_family的值。

英文:

The si_family field at the end identifies if the bytes should be interpreted as IPv4 or IPv6 SOCKADDR structure.

The most easy route is likey to make a function to unmarshall the bytes into a go version of the SOCKADDR_IN or SOCKADDR_IN6 struct depending on the value of si_family.

huangapple
  • 本文由 发表于 2022年4月20日 19:31:54
  • 转载请务必保留本文链接:https://go.coder-hub.com/71938894.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定