我正在尝试从服务器读取一个 JSON 编码的字节,该字节将被缩进,但长度不可预测,并且没有明显的终止字节。我想将整个 服务器响应读入一个字节。服务器将关闭连接。是否可以使用 net
执行此操作?
最佳答案
作为@minikomi 回答的补充,我想补充一点,如果您确定从服务器返回的字节是 JSON 编码的,那么有一个很好的包 encoding/json
用于这个。
http://golang.org/pkg/encoding/json/
如果您使用解码器直接从连接解码,有时不会返回错误。您可能想使用 fmt.Printf("%v\n", whateverDecodedFromTheConnection)
查看连接关闭时解码器为您的结构获取的内容。
例如,在我的例子中,encoding/gob
解码器用于将来自 tcp 连接的消息解码为定义为的结构:
type MessageType struct {
Type uint8
}
当连接关闭时,decoder.Decode(&buffer)
返回 {0}
。这可能不是常见情况,但需要注意一些事情。
关于connection - 读取直到服务器关闭连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13186746/