package main import ( "fmt" "log" "net" "net/rpc" ) func main() { listener, err := net.Listen("tcp", ":1234") if err != nil { log.Fatal("ListenTCP error:", err) } clientChan := make(chan *rpc.Client) go func() { for { conn, err := listener.Accept() if err != nil { log.Fatal("Accept error:", err) } clientChan <- rpc.NewClient(conn) } }() client := <-clientChan defer client.Close() var reply string err = client.Call("HelloService.Hello", "hello", &reply) if err != nil { log.Fatal(err) } fmt.Println(reply) }