server
type HelloService struct{}func (h *HelloService) SayHi(greeting string, reply *string) error { *reply = "Hello, " + greeting return nil}func main() { // 1.实例化一个server listener, _ := net.Listen("tcp", ":8080") // 2.注册处理逻辑 _ = rpc.RegisterName("HelloService", &HelloService{}) // 3.启动服务 for { conn, _ := listener.Accept() // 这个方法只监听一次 rpc.ServeConn(conn) }}
client
func main() { // 1.建立连接 client, _ := rpc.Dial("tcp", ":8080") // 2.调用方法 var reply string err := client.Call("HelloService.SayHi", "Felix", &reply) if err != nil { panic("远程调用失败") } fmt.Println("reply: ", reply)}