Golang rpc 调用解决意外的 EOF
Golang rpc call resolve unexpected EOF
我在客户端执行 Call 函数后收到意外的 EOF 错误 code.I 有一个侦听端口 8081 的 tcp 服务器,并为 RPC 请求和响应类型定义了自定义格式。
客户代码
c, err := rpc.Dial("tcp", "127.0.0.1:8081")
if err != nil {
fmt.Fprintf(w, "Tcp Connection Error")
return
}
defer c.Close()
response := new(Result)
err = c.Call("Profile.Manage", msg, response)
if err != nil {
fmt.Println(err)
}
服务器代码
handleobj := login_change.NewProfile()
rpc.Register(handleobj)
PORT := "127.0.0.1:8081"
l, err := net.Listen("tcp", PORT)
if err != nil {
fmt.Println(err)
return
}
defer l.Close()
rpc.Accept(l)
普通套餐
type Profile struct{}
func (h *Profile) Manage(b Msgobject, res *Result) (err error) {
res.Message = "Control reached"
return nil
}
func NewProfile() *Profile {
return &Profile{}
}
现在已经解决了,我实际上是想对一个由不同进程初始化的变量进行操作,因此导致了这个问题。
我在客户端执行 Call 函数后收到意外的 EOF 错误 code.I 有一个侦听端口 8081 的 tcp 服务器,并为 RPC 请求和响应类型定义了自定义格式。
客户代码
c, err := rpc.Dial("tcp", "127.0.0.1:8081")
if err != nil {
fmt.Fprintf(w, "Tcp Connection Error")
return
}
defer c.Close()
response := new(Result)
err = c.Call("Profile.Manage", msg, response)
if err != nil {
fmt.Println(err)
}
服务器代码
handleobj := login_change.NewProfile()
rpc.Register(handleobj)
PORT := "127.0.0.1:8081"
l, err := net.Listen("tcp", PORT)
if err != nil {
fmt.Println(err)
return
}
defer l.Close()
rpc.Accept(l)
普通套餐
type Profile struct{}
func (h *Profile) Manage(b Msgobject, res *Result) (err error) {
res.Message = "Control reached"
return nil
}
func NewProfile() *Profile {
return &Profile{}
}
现在已经解决了,我实际上是想对一个由不同进程初始化的变量进行操作,因此导致了这个问题。