summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2017-06-12 23:51:07 +0200
committerDimitri Sokolyuk <demon@dim13.org>2017-06-12 23:51:07 +0200
commit4732c68d6334c30a2c602a27d5598cba496c9719 (patch)
tree12a12e7ecfed72639a7873199ffe1ae053d1ace4
parentebeab355ca78014f46e83cb20dc81f91e37ff491 (diff)
Track both, R and W time
-rw-r--r--main.go12
1 files changed, 8 insertions, 4 deletions
diff --git a/main.go b/main.go
index 0367ad3..edf06ba 100644
--- a/main.go
+++ b/main.go
@@ -29,7 +29,8 @@ type Data struct {
Dir Direction
Data []byte
Size int
- Time time.Duration
+ RTime time.Duration
+ WTime time.Duration
}
func dump(dir Direction, src, dst net.Conn, data chan<- Data) error {
@@ -37,7 +38,7 @@ func dump(dir Direction, src, dst net.Conn, data chan<- Data) error {
for k := 1; ; k++ {
now := time.Now()
n, err := src.Read(buf)
- spent := time.Since(now)
+ rtime := time.Since(now)
if err != nil {
if err == io.EOF {
return nil
@@ -45,13 +46,16 @@ func dump(dir Direction, src, dst net.Conn, data chan<- Data) error {
return fmt.Errorf("READ %v", err)
}
- data <- Data{Round: k, Dir: dir, Data: buf[:n], Size: n, Time: spent}
time.Sleep(time.Second)
+ now = time.Now()
_, err = dst.Write(buf[:n])
+ wtime := time.Since(now)
if err != nil {
return fmt.Errorf("WRITE %v", err)
}
+
+ data <- Data{Round: k, Dir: dir, Data: buf[:n], Size: n, RTime: rtime, WTime: wtime}
}
}
@@ -93,7 +97,7 @@ func main() {
}(ClientServer)
for d := range data {
- fmt.Println("#", d.Round, d.Dir, d.Size, "bytes", d.Time, d.Data)
+ fmt.Println("#", d.Round, d.Dir, d.Size, "bytes", "Read", d.RTime, "Write", d.WTime, d.Data)
//fmt.Println(hex.Dump(d.Data))
}
}