golang的rpc快速使用

RPC

RPC(Remote Procedure Call Protocol):远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。

Golang的RPC包使用

需要遵守

方法是导出的

方法有俩个参数,都是导出类型或内建类型

方法的第二个参数是指针

方法只有一个error借口类型的返回值
服务端

func (t *T) MethodName(argType T1, replyType *T2) error

type Dog struct {

}

func (this *Dog) GetAdd(In int, Out *int) error {
	*Out = In + 1
	return nil
}
func main() {
// 实例化
	pd := new(dog)
// rpc注册
	rpc.Register(pd)
// rpc网络
	rpc.HandleHTTP()
// 监听网络
	ln, err := net.Listen("tcp", "0.0.0.0:10086")
	if err != nil {
		fmt.Println("net listen err:" , err)
		return
	}
// 等待网络连接
	http.Serve(ln, nil)
}
客户端

Call(serviceMethod string, args interface{}), reply interface{}

  • 第一个参数最好是复制以免写错
func main() {
// 连接服务器
	cli, err := rpc.DialHTTP("tcp", "0.0.0.0:10086")
	if err != nil {
		fmt.Println("client connect err:", err)
		return
	}
	
	var result int
// 调用函数
	if err := cli.Call("Dog.GetAdd", 10, &result); err != nil {
		fmt.Println("Call serviceMethod err:", err)
		return
	}
// 打印结果
	fmt.Println("客户端得到结果:", result)
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值