golang通个udp接收到C结构体数据,请问怎样转换使用。

发送端是使用C代码编写的,是将C的结构体发送到golang。 golang接收到后怎么样吧[]byte转换为golang能使用的数据。

已邀请:

lrita

赞同来自: ccc123123

了解一下C struct的标准布局,然后用golang struct凑一下就可以了。

比如简单的:

struct m {
   int64_t a;
   int64_t b;
};

对应:

type m struct {
    int64 a;
    int64 b;
}

var m0 m
if _, err:= io.ReadFull(conn,  (*(*[]byte)(unsafe.Pointer(&m0)))[:unsafe.Sizeof(m0)]);err!=nil{
    panic("xxx")
}

godv

赞同来自:

序列化再传输吧

要回复问题请先登录注册