Пример #1
0
func ping(args []string, c *client.Client) {
	host := ""
	if len(args) > 1 {
		log.Fatalf("Unknown args for ping: %v", args[1:])
	}
	if len(args) == 1 {
		var err error
		host, err = utils.ValidateAddr(args[0])
		if err != nil {
			log.Fatalf("%v", err)
		}
	}
	startTime := time.Now()

	log.Printf("Connection took %v", time.Since(startTime))
	value := make([]byte, 16)
	rand.Read(value)
	echoTime := time.Now()
	result, err := c.Echo(value, host)
	if err != nil {
		log.Fatalf("client.Echo failed: %v", err)
	}
	if !bytes.Equal(value, result) {
		log.Fatalf("Incorrect response from echo")
	}
	log.Printf("Reply took %v: %v", time.Since(echoTime), result)
	// milliseconds
	fmt.Printf("%f\n", float64(time.Since(startTime))/1000000)
}