github.com/qiuhoude/go-web@v0.0.0-20220223060959-ab545e78f20d/prepare/09_rpc/json/client.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  	"github.com/qiuhoude/go-web/prepare/09_rpc/moudle"
     6  	"log"
     7  	"net/rpc/jsonrpc"
     8  )
     9  
    10  func main() {
    11  
    12  	client, err := jsonrpc.Dial("tcp", "127.0.0.1:8000")
    13  	if err != nil {
    14  		log.Fatal(err)
    15  	}
    16  	ret := 0
    17  	//调用远程方法
    18  	//注意第三个参数是指针类型
    19  	err2 := client.Call("Rect.Area", moudle.Params{50, 100}, &ret)
    20  	if err2 != nil {
    21  		log.Fatal(err2)
    22  	}
    23  	fmt.Println(ret)
    24  	err3 := client.Call("Rect.Perimeter", moudle.Params{50, 100}, &ret)
    25  	if err3 != nil {
    26  		log.Fatal(err3)
    27  	}
    28  	fmt.Println(ret)
    29  
    30  }