在Go语言中,可以使用net
包来实现UDP通信。下面是一个简单的示例代码,用于接收并打印每一条UDP报文:
package main
import (
"fmt"
"net"
)
func main() {
// 定义本地地址
addr, err := net.ResolveUDPAddr("udp", ":8000")
if err != nil {
fmt.Println("ResolveUDPAddr error:", err)
return
}
// 创建UDP连接
conn, err := net.ListenUDP("udp", addr)
if err != nil {
fmt.Println("ListenUDP error:", err)
return
}
defer conn.Close()
buf := make([]byte, 1024) // 定义缓冲区
for {
n, remoteAddr, err := conn.ReadFromUDP(buf) // 读取数据
if err != nil {
fmt.Println("ReadFromUDP error:", err)
continue
}
fmt.Printf("Received from %s: %s\n", remoteAddr.String(), string(buf[:n]))
}
}
该程序监听本地的8000端口,每当接收到一个UDP报文时,就会打印出发送方的地址以及报文内容。
你可以根据需要修改端口号和其他参数,并根据自己的需求进一步处理接收到的报文数据。
内容由零声教学AI助手提供,问题来源于学员提问