ZBLOG

golang 实现 UDP监控

以下是一个简单的UDP监控程序实现:

package main

import (
	"fmt"
	"net"
)

func main() {
	addr, err := net.ResolveUDPAddr("udp", ":8888")
	if err != nil {
		fmt.Println("Error: ", err)
		return
	}

	conn, err := net.ListenUDP("udp", addr)
	if err != nil {
		fmt.Println("Error: ", err)
		return
	}
	defer conn.Close()

	buffer := make([]byte, 1024)

	for {
		n, addr, err := conn.ReadFromUDP(buffer)
		if err != nil {
			fmt.Println("Error: ", err)
			continue
		}

		fmt.Printf("Received %d bytes from %v: %s\n", n, addr, string(buffer[:n]))
	}
}

这个程序首先通过net.ResolveUDPAddr()函数解析本地地址和端口,然后通过net.ListenUDP()函数监听该地址和端口。在循环中,它使用conn.ReadFromUDP()函数从连接中读取数据,并将其打印到控制台上。

要测试此程序,请运行它并使用任何支持UDP的工具(例如netcat)向本地端口发送数据。例如:

echo "Hello World" | nc -u localhost 8888

您应该会看到类似于以下内容的输出:

Received 12 bytes from 127.0.0.1:53370: Hello World

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=6128

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?