初探net/rpc

lkpalu Lv3

服务端

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package main

import (
"net"
"net/rpc"
)

type HelloWorldService struct{}

func (h *HelloWorldService) Hello(args string, reply *string) error {
*reply = "hello," + args
return nil
}
func main() {
//1.监听
listen, err := net.Listen("tcp", "localhost:1234")
if err != nil {
panic(err)
}
//2.注册rpc服务
_ = rpc.RegisterName("HelloWorldService", &HelloWorldService{})
//3.将tcp监听接管为rpc服务
accept, _ := listen.Accept()
rpc.ServeConn(accept)
}

客户端

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package main

import (
"fmt"
"net/rpc"
)

func main() {
//1.创建客户端连接
dial, _ := rpc.Dial("tcp", "localhost:1234")
//2.调用远程服务端方法
var reply string
err := dial.Call("HelloWorldService.Hello", "lkpalu", &reply)
if err != nil {
panic(err)
}
fmt.Println(reply)
}
  • 标题: 初探net/rpc
  • 作者: lkpalu
  • 创建于 : 2024-11-06 21:28:03
  • 更新于 : 2024-11-06 21:29:23
  • 链接: https://redefine.ohevan.com/2024/11/06/初探net-rpc/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
目录
初探net/rpc