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  }