Files
4566704 8a038d4df3 feat(nettest): 自 go-hua 迁入网络连通性探测
- TCP 端口探测 + 原始 ICMP Ping, 持续统计成功率与延迟
- 附测试、examples/nettest 例程与包 README
2026-09-20 12:25:37 +08:00

43 lines
1004 B
Go

// nettest 包示例:网络连通性测试(port>0 走 TCP 端口探测,port=0 走 ICMP,需管理员权限)
package main
import (
"fmt"
"net"
"time"
"git.zeroonesoft.cn/golib/zogo/nettest"
)
func main() {
// 起一个本地 TCP 服务作为测试目标
l, err := net.Listen("tcp", "127.0.0.1:0")
if err != nil {
panic(err)
}
go func() {
for {
c, err := l.Accept()
if err != nil {
return
}
c.Close()
}
}()
port := l.Addr().(*net.TCPAddr).Port
// 每 1 秒探测一次,IsEcho=true 时控制台输出每次结果
t := nettest.NewNetTest(1, "本机端口", "127.0.0.1", port, 1000, true)
t.Start()
time.Sleep(3 * time.Second)
t.Stop()
r := t.GetResult(false)
fmt.Printf("探测目标: %s:%d\n", t.Addr, port)
fmt.Printf("总计: %d 成功: %d 失败: %d 平均: %dms 最小: %dms 最大: %dms\n",
r.TotalCount, r.SuccessCount, r.FailCount, r.Avg, r.Min, r.Max)
// 运行中可动态更换目标: t.Set("名称", "目标", 端口, 超时毫秒)
}