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