github.com/gogf/gf@v1.16.9/.example/net/gudp/gudp_server_client.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "time" 6 7 "github.com/gogf/gf/net/gudp" 8 "github.com/gogf/gf/os/glog" 9 "github.com/gogf/gf/os/gtime" 10 ) 11 12 func main() { 13 // Server 14 go gudp.NewServer("127.0.0.1:8999", func(conn *gudp.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 glog.Error(err) 21 } 22 } 23 if err != nil { 24 glog.Error(err) 25 } 26 } 27 }).Run() 28 29 time.Sleep(time.Second) 30 31 // Client 32 for { 33 if conn, err := gudp.NewConn("127.0.0.1:8999"); err == nil { 34 if b, err := conn.SendRecv([]byte(gtime.Datetime()), -1); err == nil { 35 fmt.Println(string(b), conn.LocalAddr(), conn.RemoteAddr()) 36 } else { 37 glog.Error(err) 38 } 39 conn.Close() 40 } else { 41 glog.Error(err) 42 } 43 time.Sleep(time.Second) 44 } 45 }