英文:
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_IN
或SOCKADDR_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
.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论