github.com/gogf/gf@v1.16.9/.example/net/gtcp/pkg_operations/monitor/gtcp_monitor_server.go (about) 1 package main 2 3 import ( 4 "encoding/json" 5 6 "github.com/gogf/gf/.example/net/gtcp/pkg_operations/monitor/types" 7 "github.com/gogf/gf/net/gtcp" 8 "github.com/gogf/gf/os/glog" 9 ) 10 11 func main() { 12 // 服务端,接收客户端数据并格式化为指定数据结构,打印 13 gtcp.NewServer("127.0.0.1:8999", func(conn *gtcp.Conn) { 14 defer conn.Close() 15 for { 16 data, err := conn.RecvPkg() 17 if err != nil { 18 if err.Error() == "EOF" { 19 glog.Println("client closed") 20 } 21 break 22 } 23 info := &types.NodeInfo{} 24 if err := json.Unmarshal(data, info); err != nil { 25 glog.Errorf("invalid package structure: %s", err.Error()) 26 } else { 27 glog.Println(info) 28 conn.SendPkg([]byte("ok")) 29 } 30 } 31 }).Run() 32 }