github.com/gogf/gf@v1.16.9/.example/net/gtcp/gtcp_pool2.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "time" 6 7 "github.com/gogf/gf/net/gtcp" 8 "github.com/gogf/gf/os/glog" 9 "github.com/gogf/gf/os/gtime" 10 ) 11 12 func main() { 13 // Server 14 go gtcp.NewServer("127.0.0.1:8999", func(conn *gtcp.Conn) { 15 defer conn.Close() 16 for { 17 data, err := conn.Recv(-1) 18 if len(data) > 0 { 19 if err := conn.Send(append([]byte("> "), data...)); err != nil { 20 fmt.Println(err) 21 } 22 } 23 if err != nil { 24 break 25 } 26 return 27 } 28 }).Run() 29 30 time.Sleep(time.Second) 31 32 // Client 33 for { 34 if conn, err := gtcp.NewPoolConn("127.0.0.1:8999"); err == nil { 35 if b, err := conn.SendRecv([]byte(gtime.Datetime()), -1); err == nil { 36 fmt.Println(string(b), conn.LocalAddr(), conn.RemoteAddr()) 37 } else { 38 fmt.Println(err) 39 } 40 conn.Close() 41 } else { 42 glog.Error(err) 43 } 44 time.Sleep(time.Second) 45 } 46 }