// 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("名称", "目标", 端口, 超时毫秒) }