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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| package main
import ( "fmt" "log" "net/rpc" )
type ArithRequest struct { A int B int }
type ArithResponse struct { Pro int Quo int Rem int }
func main() { conn, err := rpc.DialHTTP("tcp", "127.0.0.1:8095") if err != nil { log.Fatalln("dailing error: ", err) }
req := ArithRequest{9, 2} var res ArithResponse
err = conn.Call("Arith.Multiply", req, &res) if err != nil { log.Fatalln("arith error: ", err) } fmt.Printf("%d * %d = %d\n", req.A, req.B, res.Pro)
err = conn.Call("Arith.Divide", req, &res) if err != nil { log.Fatalln("arith error: ", err) } fmt.Printf("%d / %d, quo is %d, rem is %d\n", req.A, req.B, res.Quo, res.Rem) }
|