github.com/gogf/gf@v1.16.9/.example/net/gtcp/pkg_operations/gtcp_pkg_option.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/util/gconv"
    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.RecvPkg(gtcp.PkgOption{MaxSize: 1})
    18  			if err != nil {
    19  				fmt.Println(err)
    20  				break
    21  			}
    22  			fmt.Println("RecvPkg:", string(data))
    23  		}
    24  	}).Run()
    25  
    26  	time.Sleep(time.Second)
    27  
    28  	// Client
    29  	conn, err := gtcp.NewConn("127.0.0.1:8999")
    30  	if err != nil {
    31  		panic(err)
    32  	}
    33  	defer conn.Close()
    34  	for i := 0; i < 10000; i++ {
    35  		if err := conn.SendPkg([]byte(gconv.String(i))); err != nil {
    36  			glog.Error(err)
    37  		}
    38  		time.Sleep(1 * time.Second)
    39  	}
    40  }