问题标签 [gob]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
7486 浏览

go - 如何将 []byte 转换为 *bytes.Buffer

我正在尝试解码我​​通过另一个 fasthttp 端点发送并接收错误 Fasthttp 端点(通过 gob 编码 [] 字符串)----> Fasthttp 端点(接收和解码)的 gob 输出

我收到错误:ctx.PostBody() (type []byte) as type *bytes.Buffer in assignment

我如何转换[]byte*bytes.Buffer.

任何帮助表示赞赏。

0 投票
1 回答
804 浏览

go - gob.Register 名称未为另一个包中的接口注册

我最近重组了我的代码,现在main包下有两个包:chainapi.

chain我定义了一些 structsSomeStruct1和这些结构SomeStruct2的接口SomeInterface。以下是chain/cli.go外观。

我放的api/api.go里面还有另一个类似的地方。Run()gob.Register(chain.SomeStruct1{})

main.go看起来像这样:

但是,我gob: name not registered for interface: "main.SomeStruct1"在运行时遇到了错误。当我将所有代码都放在一个包中时,这并没有发生main,我觉得奇怪的SomeStruct1是现在在chain包下但错误提到了main.SomeStruct1. 我哪里弄错了gob.Register()

0 投票
0 回答
294 浏览

go - 传输大文件时内存不足

我正在使用 Go Gob 传输大文件(~ 1 GB)或许多小文件(~ 30 MB)。服务器在循环中运行,并在客户端发送文件时接收文件。

如果我发送一个大文件或几个小文件,我的代码就可以工作,但是当第二次发送一个大文件时,它会返回一个“致命错误:运行时:内存不足”。如果我发送一个大文件,停止程序,然后重新启动并发送另一个大文件,它就可以工作。

它通过 Gob 接收文件并写入文件后,它不会释放内存。

服务器代码

0 投票
2 回答
3211 浏览

postgresql - Golang + postgres 存储 gob 数据

我正在尝试将使用encoding/gob来自 Golang 的编码数据存储到 Postgres 中。我也在使用 Gorm。

首先,使用发送表单数据

目前client_encoding在 postgres 数据库中设置为 UTF8。这是我用来编码的内容:

然后我将string(buf.Bytes())其存储在当前为字符串类型的数据库列中。现在我是编码新手,我认为 gob 对我的数据库有不同的编码。我在控制台中收到此错误:

(pq: invalid byte sequence for encoding "UTF8": 0xff)

我一直在关注加密/解密的要点: https ://gist.github.com/fuzzyami/f3a7231037166117a6fef9607960aee7

根据我的阅读,我不应该将结构编码到数据库中,在这种情况下p,除非使用gob. 如果我错了,请纠正我(在我找到这个的那一刻找不到资源)。

有没有人能指出我在 Postgres 中存储这些数据的正确方向,这些数据稍后会被解密?我显然不了解编码过程,也不完全确定从哪里开始阅读资源,因此感谢您的帮助!

0 投票
1 回答
989 浏览

go - 序列化结构以通过 UDP 发送它

我试图弄清楚如何序列化结构并通过 UDP 将其发送到我的服务器。我设法实际发送了该结构,但收到后我没有任何值......除非我静态添加一个数字。

在下面的代码中,我向端口 8080 发送了一个 UDP 数据包,其序列号只是 0-9 之间的数字。我在其中添加 + 1 以表明我的观点。我期望的是在接收端我应该在消息部分 1-10 中收到。但我收到的唯一信息是数字 1,这意味着该变量应设置为 0。

为了验证我是否真的发送了 0,我打印了我收到的缓冲区的长度,它应该是正确的长度。所以我一定是在解码方面做错了。

发送功能:

监听功能:

我要发送的结构:

0 投票
1 回答
612 浏览

go - 反序列化未知 Go 的 gob blob

我有未知类型的gobs。有没有办法打印出来查看里面?

可能有gob.Debug,但对我不可用 https://golang.org/src/encoding/gob/debug.go

谷歌搜索建议使用DecodeValue,但它需要初始化reflect.Value 如果我得到未知的 gob blob,那么我无法传递未知类型的初始化值

https://play.golang.org/p/OWxX1kPJ6Qa

0 投票
0 回答
67 浏览

go - 如何在程序之间传输 gobs

我使用下面的代码创建一个 gob 文件,该文件成功执行

下面是从完全不同的代码库和调试二进制文件编译的解码器,它失败了。

解码代码失败并出现以下错误:

有谁知道如何解决这个问题?

0 投票
1 回答
1356 浏览

go - 寄存器类型后Gob解码无法解码接口

我定义了这些类型:

当我尝试使用时,UnmarshalMessage我得到了错误gob: OtherMsg is not assignable to type MyMessage我与go 示例中用于编码和解码接口的用法没有区别。我究竟做错了什么?

0 投票
1 回答
532 浏览

go - Gob 解码器抛出 EOF 错误一段时间然后停止

我正在尝试通过 chan 将 []byte 提供给 gob 解码器。它可以工作,但起初解码器会抛出一大堆 EOF 错误然后停止。当它停止抛出错误时,程序的行为与我期望的完全一样,它会解码 gobs 并正确处理它产生的结构。

这是调用函数,正在读取的通道是 SSH 通道。

解码器函数如下所示:

我不确定这是否是一个真正的问题,gob 解码器是从缓冲区中删除数据还是将其保留在那里,直到出现足够的数据来生成值?

0 投票
2 回答
124 浏览

go - 为什么将两个不同的对象解码成同一个对象,而bool成员却没有改变?

我正在使用 go 的 encoding/gob 将类型为 T 的两个不同对象解码为同一个对象,但是在第二次解码后对象的 bool 成员没有改变。为什么?