golang 简单实现udp服务端和udp客户端

    科技2026-02-05  4

    服务端

    package main import ( "fmt" "net" "time" ) func main() { udpAddr, err := net.ResolveUDPAddr("udp", ":8888") if err != nil { fmt.Println("Err resolve UDP address: ", err) return } serverConn, err := net.ListenUDP("udp", udpAddr) if err != nil { fmt.Println("ListenUDP error: ", err) return } var ticker = time.Tick(time.Second * 2) // 每隔2秒钟发送一个数据 for { for _ = range ticker { var buff [512]byte n, rAddr, err := serverConn.ReadFromUDP(buff[0:]) if err != nil { fmt.Println("Read error: ", err) break } fmt.Println("Read from client: ", string(buff[:n])) // 如果使用Write,本地测试时客户端接收不到信息 serverConn.WriteToUDP([]byte("Hello client"), rAddr) } } }

    客户端

    package main import ( "fmt" "net" ) func main(){ udpAddr, err := net.ResolveUDPAddr("udp",":8888") if err != nil{ fmt.Println("Err resolve UDP address: ", err) return } conn, err := net.DialUDP("udp", nil, udpAddr) if err != nil{ fmt.Println("Dial UDP error: ", err) return } for { conn.Write([]byte("Hello server")) var buff [512]byte n, err := conn.Read(buff[0:]) if err != nil{ fmt.Println("ERR: ", err) break } fmt.Println("Read from server: ", string(buff[:n])) } }
    Processed: 0.012, SQL: 10