Advertisement
Guest User

Untitled

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