创立工程文件

mkdir udpServer udpClientcd udpServer && go mod init udpServer && touch server.gocd ../udpClient && go mod init udpClient && touch client.go

服务端

// server.gopackage mainimport(    "net"    "fmt")func main(){    addr, err := net.ResolveUDPAddr("udp", ":8080")    if err!=nil{        panic(err)    }    fmt.Println("udp address resolve success: ", addr)    udpSocket, err := net.ListenUDP("udp", addr)    if err!=nil{        panic(err)    }    fmt.Println("udp socket create success...")    defer udpSocket.Close()    buf := make([]byte, 2048)    n, clientUDPAddr, err := udpSocket.ReadFromUDP(buf)    if err!=nil{        panic(err)    }    fmt.Println("the client addr is: ", clientUDPAddr)    fmt.Printf("receive from %s is: %s\n", clientUDPAddr, buf[:n])    _, err = udpSocket.WriteToUDP([]byte("Data processing completed!"), clientUDPAddr)    if err != nil{        panic(err)    }}
$ go run server.goudp address resolve success:  :8080udp socket create success...

客户端

// client.gopackage mainimport(    "net"    "fmt")func main(){    conn, err := net.Dial("udp", ":8080")    if err != nil{        panic(err)    }    defer conn.Close()    fmt.Println("connect to udp server 8080 ...")    conn.Write([]byte("hello, my friend..."))    buf := make([]byte, 2048)    n, err := conn.Read(buf)    if err != nil{        panic(err)    }    fmt.Printf("receive from server: %s\n", buf[:n])}
$ go run client.goconnect to udp server 8080...

测试

$ go run client.goconnect to udp server 8080 ...receive from server: Data processing completed!
$ go run server.goudp address resolve success:  :8080udp socket create success...the client addr is:  127.0.0.1:48313receive from 127.0.0.1:48313 is: hello, my friend...