问题标签 [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.
go - 如何将 []byte 转换为 *bytes.Buffer
我正在尝试解码我通过另一个 fasthttp 端点发送并接收错误 Fasthttp 端点(通过 gob 编码 [] 字符串)----> Fasthttp 端点(接收和解码)的 gob 输出
我收到错误:ctx.PostBody() (type []byte) as type *bytes.Buffer in assignment
我如何转换[]byte
为*bytes.Buffer
.
任何帮助表示赞赏。
go - gob.Register 名称未为另一个包中的接口注册
我最近重组了我的代码,现在main
包下有两个包:chain
和api
.
在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()
?
go - 传输大文件时内存不足
我正在使用 Go Gob 传输大文件(~ 1 GB)或许多小文件(~ 30 MB)。服务器在循环中运行,并在客户端发送文件时接收文件。
如果我发送一个大文件或几个小文件,我的代码就可以工作,但是当第二次发送一个大文件时,它会返回一个“致命错误:运行时:内存不足”。如果我发送一个大文件,停止程序,然后重新启动并发送另一个大文件,它就可以工作。
它通过 Gob 接收文件并写入文件后,它不会释放内存。
服务器代码
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 中存储这些数据的正确方向,这些数据稍后会被解密?我显然不了解编码过程,也不完全确定从哪里开始阅读资源,因此感谢您的帮助!
go - 序列化结构以通过 UDP 发送它
我试图弄清楚如何序列化结构并通过 UDP 将其发送到我的服务器。我设法实际发送了该结构,但收到后我没有任何值......除非我静态添加一个数字。
在下面的代码中,我向端口 8080 发送了一个 UDP 数据包,其序列号只是 0-9 之间的数字。我在其中添加 + 1 以表明我的观点。我期望的是在接收端我应该在消息部分 1-10 中收到。但我收到的唯一信息是数字 1,这意味着该变量应设置为 0。
为了验证我是否真的发送了 0,我打印了我收到的缓冲区的长度,它应该是正确的长度。所以我一定是在解码方面做错了。
发送功能:
监听功能:
我要发送的结构:
go - 反序列化未知 Go 的 gob blob
我有未知类型的gobs。有没有办法打印出来查看里面?
可能有gob.Debug
,但对我不可用
https://golang.org/src/encoding/gob/debug.go
谷歌搜索建议使用DecodeValue
,但它需要初始化reflect.Value
如果我得到未知的 gob blob,那么我无法传递未知类型的初始化值
go - 如何在程序之间传输 gobs
我使用下面的代码创建一个 gob 文件,该文件成功执行
下面是从完全不同的代码库和调试二进制文件编译的解码器,它失败了。
解码代码失败并出现以下错误:
有谁知道如何解决这个问题?
go - 寄存器类型后Gob解码无法解码接口
我定义了这些类型:
当我尝试使用时,UnmarshalMessage
我得到了错误gob: OtherMsg is not assignable to type MyMessage
。我与go 示例中用于编码和解码接口的用法没有区别。我究竟做错了什么?
go - Gob 解码器抛出 EOF 错误一段时间然后停止
我正在尝试通过 chan 将 []byte 提供给 gob 解码器。它可以工作,但起初解码器会抛出一大堆 EOF 错误然后停止。当它停止抛出错误时,程序的行为与我期望的完全一样,它会解码 gobs 并正确处理它产生的结构。
这是调用函数,正在读取的通道是 SSH 通道。
解码器函数如下所示:
我不确定这是否是一个真正的问题,gob 解码器是从缓冲区中删除数据还是将其保留在那里,直到出现足够的数据来生成值?
go - 为什么将两个不同的对象解码成同一个对象,而bool成员却没有改变?
我正在使用 go 的 encoding/gob 将类型为 T 的两个不同对象解码为同一个对象,但是在第二次解码后对象的 bool 成员没有改变。为什么?