go语言实现一个简单的grpc

go语言实现一个简单的grpc


1.服务端代码

package main

import (
   "fmt"
   "net"
   "net/rpc"
)

type HelloServer struct {
}

func (p *HelloServer) Hello(request string, reply *string) error {
   *reply = fmt.Sprintf("Hello %s", request)
   return nil
}
func main() {
   listen, _ := net.Listen("tcp", ":1234")
   _ = rpc.RegisterName("HelloServer", &HelloServer{})

   accept, _ := listen.Accept()

   rpc.ServeConn(accept)
}

2.客户端代码

package main

import (
   "fmt"
   "net/rpc"
)

func main() {
   client, err := rpc.Dial("tcp", "localhost:1234")
   if err != nil {
      fmt.Println("连接失败", err)
      return
   }
   var reply string
   err = client.Call("HelloServer.Hello", "张三", &reply)
   if err != nil {
      fmt.Println("调用失败", err)
      return
   }

   fmt.Println(reply)
}

目录结构

image.png

最后编辑于:2022/01/08作者: 牛逼PHP

发表评论