Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "crypto/rand"
- "io"
- "log"
- "net"
- "sync/atomic"
- "time"
- )
- var bytesSent uint64
- func measure(start time.Time) {
- for {
- time.Sleep(5 * time.Second)
- log.Println(float64(atomic.LoadUint64(&bytesSent)) / time.Since(start).Seconds())
- }
- }
- func main() {
- log.SetFlags(log.LstdFlags | log.Lshortfile)
- conn, err := net.Dial("tcp", "nuc:50001")
- if err != nil {
- log.Fatal(err)
- }
- go measure(time.Now())
- for {
- data := make([]byte, 32*1024)
- if _, err := rand.Read(data); err != nil {
- log.Fatal(err)
- } else if _, err := conn.Write(data); err != nil {
- log.Fatal(err)
- }
- resp := make([]byte, 1)
- if _, err := io.ReadFull(conn, resp); err != nil {
- log.Fatal(err)
- } else if resp[0] != 0x01 {
- log.Fatalf("unexepected return: %v", resp)
- }
- atomic.AddUint64(&bytesSent, uint64(len(data)))
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement