检测TCP/UDP连接超时
m.Conn.SetReadDeadline(time.Now().Add(delay))
for {
n, err := m.Conn.Read(buffer)
if err != nil {
log.Println(err)
}
if n > 0 {
// something was read before the deadline
// let's delay the deadline
m.Conn.SetReadDeadline(time.Now().Add(delay))
}
if nerr, ok := err.(net.Error); ok && nerr.Timeout() {
// Timeout error
fmt.Println("No response")
m.Kill <- true
return
}
}