Advertisement
Guest User

Untitled

a guest
Sep 29th, 2013
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 1.04 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "fmt"
  5.     "net"
  6.     "time"
  7. )
  8. func main() {
  9.     resp := ""
  10.     fmt.Print("(c)lient or (s)erver ?")
  11.     fmt.Scan(&resp)
  12.     fmt.Println("")
  13.  
  14.     b := make([]byte, 512, 512)
  15.     p := uint64(0)
  16.    
  17.     if resp == "s" {
  18.         listener, err := net.Listen("tcp", "127.0.0.1:10000")
  19.         if err == nil {
  20.             conn, err := listener.Accept()
  21.             if err == nil {
  22.                 t0 := time.Now()
  23.                 fmt.Println("new connection from", conn.RemoteAddr())
  24.                 for {
  25.                     n, err := conn.Write(b)
  26.                     if n < len(b) {
  27.                         fmt.Println(n)
  28.                     }
  29.                     p += uint64(n)
  30.                     if (p > 1000000000) || (err != nil) {
  31.                         break
  32.                     }
  33.                 }
  34.                 conn.Close()
  35.                
  36.                 fmt.Println("sent", p, "in sec", time.Since(t0))
  37.             }
  38.         }
  39.     } else if resp == "c" {
  40.         conn, err := net.DialTimeout("tcp", "127.0.0.1:10000", 10*time.Second)
  41.         if err == nil {
  42.             for {
  43.                 n, err := conn.Read(b)
  44.                 if n < len(b) {
  45.                     fmt.Println(n)
  46.                 }              
  47.                 p += uint64(n)
  48.                 if err != nil {
  49.                     break
  50.                 }              
  51.             }
  52.             conn.Close()
  53.            
  54.             fmt.Println("recv total", p)
  55.         }
  56.     }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement