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  }