在 net.Conn 上阅读和写作

我正在尝试从 net.Conn 读取和写入数据,但由于我只有 Read([]byte) 和 Write([]byte) 函数,我发现很难找到帮助函数来完成这项工作。

我需要读写以下类型:

  • uint64

  • 字节

  • uint32

  • UTF-8 编码的字符串(首先是一个 uint32 长度,然后是字符串数据)

简而言之

Go 的包中有没有像 Java 的 DataInputStream 和 DataOutputStream 这样的东西?


慕侠2389804
浏览 242回答 3
3回答

森林海

您需要决定一种格式来进行编组。您的选择是滚动您自己的格式或使用已经制作的格式。我强烈推荐后者。如果您决定推出自己的,则可以使用 .uint 对 []byte 进行编码和解码encoding/binary。它为您提供了小端和大端两种选择。字符串可以直接转换为 []byte 使用[]byte(str)。最后,字节可以作为字节发送。不需要魔法。我要强调的是,创建自己的格式通常是一个坏主意。默认情况下,我倾向于使用 JSON,并且只有在我可以获得显着的性能提升时才使用其他的,并且我相信花时间这样做是值得的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go