RPC调用,出参指针不能返回值
type Args struct {
A, B int
}
type ReplyMulti struct {
reply int
str string
}
type Arith int
func (t *Arith) Multiply(args *Args, pV *ReplyMulti) error {
pV.reply = args.A * args.B
pV.str = strconv.Itoa(pV.reply)
fmt.Println(pV.reply, pV.str)
return nil
}
调用到server端时,在接口内打印正确,
var ag Args
ag.A = 6
ag.B = 3
var ou ReplyMulti
arith.Multiply(&ag, &ou)
fmt.Println(ou.reply, ou.str)
直接在server端的main函数中调用打印也正确
args := Args{6, 4}
var reply ReplyMulti
err = client.Call("Arith.Multiply", args, &reply)
if err != nil {
log.Fatal("arith error:", err)
}
fmt.Printf("Arith: %d*%d=%d, %s\n", args.A, args.B, reply.reply, reply.str)
但是在client里面Call后的返回值是0, reply.str为空,
求解。。。。