package main import ( "fmt" "log" "net" ) func main() { // 监听 UDP 9999,可接收任意客户端数据报 pc, err := net.ListenPacket("udp", ":9999") if err != nil { log.Fatal(err) } defer pc.Close() fmt.Println("Server is listening on port 9999") // 循环读取数据 for { // 准备一个buf来读取包的内容 buf := make([]byte, 1024) n, addr, err := pc.ReadFrom(buf) // 如果读取失败,则继续下一次循环 if err != nil { fmt.Println("Error reading data:", err) continue } // 业务处理: 打印读取到的数据 fmt.Println("Read", n, "bytes from", addr) fmt.Println("Data:", string(buf[:n])+"\n") // 写入数据(回复客户端, 回一个包) _, err = pc.WriteTo([]byte("Hello, Client! I have received your message: "+string(buf[:n])+"\n"), addr) if err != nil { fmt.Println("Error writing data:", err) continue } fmt.Println("Written", len(buf), "bytes to", addr) } }