为了账号安全,请及时绑定邮箱和手机立即绑定

在 net.Conn 上阅读和写作

在 net.Conn 上阅读和写作

Go
慕侠2389804 2021-07-08 14:11:09
我正在尝试从 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,并且只有在我可以获得显着的性能提升时才使用其他的,并且我相信花时间这样做是值得的。


查看完整回答
反对 回复 2021-07-12
  • 3 回答
  • 0 关注
  • 241 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信