网络协议里面,很可能遇到自定义的封包,对应到c里面的是
typedef struct _PackageHeader
{
int headerLen;
int timeStamp;
short cmd
};
为了保证单字节对齐,可以加上编译选项
#pragma pack(1)
可惜的是,golang里面,没有这样的编译选项,猥琐的可参考的山寨代码如下
package mainimport (
"encoding/binary"
"fmt"
)type TestStruct struct {
a uint32
b int8
}func main() {
var testObject TestStruct
size := binary.Size(testObject)fmt.Println(size)
}
一般拿到buffer以后,buffer[xxx:yyy]获取数据
时间: 2024-10-10 13:49:36