package main import "net" func main() { laddr, err := net.ResolveUDPAddr(":43424") if err != nil { println("err: " + err.String()) return } udp_listener, err := net.ListenUDP("udp", laddr) if err != nil { println("err: " + err.String()) return } // set t to 1 and it never seems to hang // set t to 1000000 and it hangs pretty consistently within the first 10000 iterations t := int64(1000000) udp_listener.SetTimeout(t) udp_listener.SetReadTimeout(t) udp_listener.SetWriteTimeout(t) n := 0 packet := make([]byte, 4096) for { _,_,_ = udp_listener.ReadFrom(packet) n++ println("At ", n) if n > 10000 { break } } }