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{}
}

现在已经解决了,我实际上是想对一个由不同进程初始化的变量进行操作,因此导致了这个问题。