当前位置: > > > > gob 错误编码主体:gob:类型未注册接口:在 golang 中
来源:stackoverflow
2024-04-24 12:24:38
0浏览
收藏
大家好,我们又见面了啊~本文《gob 错误编码主体:gob:类型未注册接口:在 golang 中》的内容中将会涉及到等等。如果你正在学习Golang相关知识,欢迎关注我,以后会给大家带来更多Golang相关文章,希望我们能一起进步!下面就开始本文的正式内容~
问题内容
在rpc通信过程中,服务器无法计算出正确的值。
我收到此错误,并且我已经考虑了很长时间。
您能给点建议吗
package main import ( "crypto/ecdsa" "crypto/elliptic" "crypto/rand" f "fmt" "log" "net" "net/rpc" ) type Calc int //RPC 서버에 등록하기 위한 임의의 타입정의 type Args struct { A, B int } type Reply struct { //받을 값 PrivateKey ecdsa.PrivateKey PublicKey []byte } func (c *Calc) Get(args Args, reply *Reply) error { private, public := NewKeyPair() reply.PrivateKey = private reply.PublicKey = public return nil } func main() { rpc.Register(new(Calc)) ln, err := net.Listen("tcp", ":6000") if err != nil { f.Println(err) return } defer ln.Close() for { conn, err := ln.Accept() if err != nil { continue } f.Println("Connected") defer conn.Close() go rpc.ServeConn(conn) } } func NewKeyPair() (ecdsa.PrivateKey, []byte) { curve := elliptic.P256() private, err := ecdsa.GenerateKey(curve, rand.Reader) if err != nil { log.Panic(err) } pubKey := append(private.PublicKey.X.Bytes(), private.PublicKey.Y.Bytes()...) return *private, pubKey }
—-错误—-
2022/06/20 19:58:35 rpc:gob 错误编码正文:gob:类型未注册接口:elliptic.p256curve
正确答案
你可以通过调用这个来注册接口 gob.Register(elliptic.P256())
但这将导致您出现下一个错误。 目前无法将 gob 与椭圆形一起使用。
使用1.19以下的任何版本, 它会起作用的
本篇关于《gob 错误编码主体:gob:类型未注册接口:在 golang 中》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注公众号!