【发布时间】:2014-05-20 18:51:50
【问题描述】:
我打开了一个网络/套接字。我需要离线阅读结构化协议。即我有
messagelength|type|value|type|value ...
其中messagelength为4字节,类型为1字节,值取决于类型,...
我正在尝试找出在 Go 中执行此操作的简单方法。我被 io,bufio,encoding 淹没了……我找不到合适的起点,也找不到样本。正在寻找 ReadInt32、ReadByte、....
接下来 - 我需要组合回复 -> WriteInt32, WriteString, WriteByte,....
尝试转换python去,python代码使用struct.unpack/pack
【问题讨论】:
-
看看encoding/binary 及其提供的功能。
-
我做到了,但没有更聪明,什么是变种,我如何将阅读器连接到网络连接,...
-
varint 并不重要。您只需要 Read() 和 Write() 函数。也看看这些例子。
-
bytes.NewBuffer 将返回一个
Buffer,您可以将其用作io.Reader -
提示:如果两端都是用 Go 编写的 - 使用 gobs 进行二进制传输。 (如果另一端不是 Go 程序,则不适用)。
标签: go