Compare commits

..

No commits in common. "dbf10affb47f4f2505c323bde414e8e8671917d0" and "70d3daeccbed9abc7601833e48aefaf4e94d89e8" have entirely different histories.

1 changed files with 9 additions and 19 deletions

View File

@ -2,8 +2,8 @@ package main
import ( import (
"encoding/binary" "encoding/binary"
"fmt"
"gopkg.in/alecthomas/kingpin.v2" "gopkg.in/alecthomas/kingpin.v2"
"fmt"
"log" "log"
"net" "net"
"os" "os"
@ -18,7 +18,6 @@ var (
client = app.Command("client", "Request measurement") client = app.Command("client", "Request measurement")
serverAddress = client.Arg("address", "Address:port to connect to").String() serverAddress = client.Arg("address", "Address:port to connect to").String()
relativeTimes = client.Flag("relative", "Print times relative to start").Bool()
) )
func tcpdelayServer() { func tcpdelayServer() {
@ -57,7 +56,6 @@ func tcpdelayServer() {
} }
func tcpdelayClient() { func tcpdelayClient() {
t0 := time.Now().UnixNano()
conn, err := net.Dial("tcp", *serverAddress) conn, err := net.Dial("tcp", *serverAddress)
if err != nil { if err != nil {
log.Fatal("Cannot connect to ", *serverAddress, err) log.Fatal("Cannot connect to ", *serverAddress, err)
@ -65,17 +63,13 @@ func tcpdelayClient() {
o := 0 o := 0
buffer := make([]byte, 1024) buffer := make([]byte, 1024)
for { for {
n := 0 n, err := conn.Read(buffer)
for n < len(buffer) {
nr, err := conn.Read(buffer[n:])
if err != nil { if err != nil {
log.Fatal("Cannot read from ", *serverAddress, err.Error()) log.Fatal("Cannot read from ", *serverAddress, err)
} }
if nr <= 0 { if n != len(buffer) {
log.Fatal("Read ", n, " bytes intead of ", len(buffer)) log.Fatal("Read ", n, " bytes intead of ", len(buffer))
} }
n += nr
}
tr := time.Now().UnixNano() tr := time.Now().UnixNano()
if string(buffer[0:8]) != "tcpdelay" { if string(buffer[0:8]) != "tcpdelay" {
log.Fatal("Unexpected magic ", buffer[0:8]) log.Fatal("Unexpected magic ", buffer[0:8])
@ -85,11 +79,7 @@ func tcpdelayClient() {
log.Fatal("Unexpected offset ", oSent, " instead of ", o) log.Fatal("Unexpected offset ", oSent, " instead of ", o)
} }
ts := binary.BigEndian.Uint64(buffer[16:]) ts := binary.BigEndian.Uint64(buffer[16:])
if *relativeTimes { fmt.Println(o, ts, tr) // XXX - buffer for performance
fmt.Println(o, int64(ts)-t0, tr-t0)
} else {
fmt.Println(o, ts, tr)
}
o += n o += n
} }