package main import ( //"github.com/joaojeronimo/go-crc16" "bytes" "encoding/binary" "encoding/hex" "fmt" "net" "strconv" "time" "git.wecise.com/wecise/gosnmp" "git.wecise.com/wecise/odbserver/lib/wgwaiter" "gitee.com/wecisecode/util/logger" //"git.wecise.com/wecise/util/cast" //"strconv" ) func IntToBytes(data int64) []byte { bytebuf := bytes.NewBuffer([]byte{}) binary.Write(bytebuf, binary.BigEndian, data) return bytebuf.Bytes() } func ipToHexString(ip string) string { ipa := net.ParseIP(ip) p1 := fmt.Sprintf("%X", ipa[12]) if len(p1) == 1 { p1 = "0" + p1 } p2 := fmt.Sprintf("%X", ipa[13]) if len(p2) == 1 { p2 = "0" + p2 } p3 := fmt.Sprintf("%X", ipa[14]) if len(p3) == 1 { p3 = "0" + p3 } p4 := fmt.Sprintf("%X", ipa[15]) if len(p4) == 1 { p4 = "0" + p4 } s := fmt.Sprintf("%s%s%s%s", p1, p2, p3, p4) return s } func HexStringToBytes(s string) []byte { b, _ := hex.DecodeString(s) return b } func main() { n := 100 snmp := &gosnmp.GoSNMP{ Port: uint16(161), Transport: "udp", Community: "2811", Timeout: time.Duration(2) * time.Second, Retries: 3, ExponentialTimeout: false, MaxOids: gosnmp.MaxOids, } snmp.Version = gosnmp.Version2c lg := logger.New() lg.SetConsole(true) //params.Logger = lg snmp.Logger = gosnmp.NewLogger(lg) snmp.Target = "192.168.169.26" snmp.Retries = 3 snmp.OnRetry = func(gs *gosnmp.GoSNMP) { logger.Warn("Found that SNMP has a retry action.") } if err := snmp.Connect(); err != nil { return } defer func() { if snmp.Conn != nil { if err := snmp.Conn.Close(); err != nil { logger.Warnf("Close rping conn error: %v", err) } } }() wg := wgwaiter.NewWaiter() for i := 0; i < n; i++ { wg.AddOne() go run(snmp, i, wg) if err := wg.Wait(50 * time.Second); err != nil { fmt.Printf("####err ==>%v\n", err) } } /*if err := wg.Wait(50 * time.Second); err != nil { fmt.Printf("####err ==>%v\n",err) }*/ //time.Sleep(time.Second) print("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n") for i := 0; i < n; i++ { id := fmt.Sprintf("123456%d", i) if m, err := get(snmp, id); err != nil { fmt.Printf("####err ==>%v\n", err) } else { fmt.Printf("######## %i===> %v\n", i, m) } } print("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\n") /*for i:=0 ; i