package main

import (
	"fmt"
	service "github.com/longjoy/micro-go-course/section16/service"
	"log"
	"net/rpc"
)

func main() {

	client, err := rpc.DialHTTP("tcp", "127.0.0.1:1234")

	if err != nil {
		log.Fatal("dialing:", err)
	}

	stringReq := &service.StringRequest{"A", "B"}
	var reply string
	err = client.Call("StringService.Concat", stringReq, &reply)
	fmt.Printf("StringService Concat : %s concat %s = %s\n", stringReq.A, stringReq.B, reply)
	if err != nil {
		log.Fatal("Concat error:", err)
	}
	// 异步的调用方式
	call := client.Go("StringService.Concat", stringReq, &reply, nil)
	_ = <-call.Done
	fmt.Printf("StringService Concat : %s concat %s = %s\n", stringReq.A, stringReq.B, reply)
}