当结构包含字符串时解码二进制数据

时间:2019-11-06 04:35:55

标签: go

我正在尝试使用golang解析二进制协议 我正在使用编码/二进制库的读取功能将数据映射到结构

我的结构看起来像这样

type getSessionsResponseIPDR struct {
    RequestID     uint16
    VendorID      string
    Name          string
}

但是看起来好像不是二进制文件。Read函数不能处理以'\ 0'结尾的字符串

还有另一种读取该对象的方法

1 个答案:

答案 0 :(得分:1)

encoding/binary似乎无法实现,因为它仅支持固定大小的对象。这意味着根本不支持字符串。

如果您无法控制发送端,则必须“手动”实现它,例如从连接中读取并正确解释读取的字节。

如果您可以控制发送端,则可以使用encoding/gobencoding/json之类的东西。