我正在尝试从 net.Conn 读取和写入数据,但由于我只有 Read([]byte) 和 Write([]byte) 函数,我发现很难找到帮助函数来完成这项工作。我需要读写以下类型:uint64字节uint32UTF-8 编码的字符串(首先是一个 uint32 长度,然后是字符串数据)简而言之Go 的包中有没有像 Java 的 DataInputStream 和 DataOutputStream 这样的东西?
3 回答
森林海
TA贡献2011条经验 获得超2个赞
您需要决定一种格式来进行编组。您的选择是滚动您自己的格式或使用已经制作的格式。我强烈推荐后者。
如果您决定推出自己的,则可以使用 .uint 对 []byte 进行编码和解码encoding/binary
。它为您提供了小端和大端两种选择。字符串可以直接转换为 []byte 使用[]byte(str)
。最后,字节可以作为字节发送。不需要魔法。
我要强调的是,创建自己的格式通常是一个坏主意。默认情况下,我倾向于使用 JSON,并且只有在我可以获得显着的性能提升时才使用其他的,并且我相信花时间这样做是值得的。
- 3 回答
- 0 关注
- 241 浏览
添加回答
举报
0/150
提交
取消