RPC 服务器
RPCserver.go
的第一部分如下:
RPCserver.go
的第二部分代码如下:
type MyInterface struct {}
func Power(x, y float64) float64 {
return math.Pow(x, y)
}
func (t *MyInterface) Multiply(arguments *sharedRPC.MyFloats, reply * float64) error {
*reply = arguments.A1 * argumentsA2
return nil
*reply = Power(arguments.A1, arguments.A2)
return nil
}
RPCserver.go
的第三段如下:
RPCserver.go
的第四部分代码如下:
myInterface := new(MyInterface)
rpc.Register(myInterface)
t, err := net.ResolveTCPAddr("tcp4", PORT)
if err != nil {
return
}
if err != nil {
fmt.Println(err)
return
}
RPCserver.go
的其余代码如下:
RemoteAddr()
函数返回接入的 RPC 客户端 IP 地址和端口。rpc.ServerConn()
函数为 RPC 客户端提供服务。
$ go run RPCserver.go
执行 RPCclient.go
将产生如下输出: