_, err := conn.Read(make([]byte, 0))
if err!=io.EOF{
    // this connection is invalid
    logger.W("conn closed....",err)

}else{
    byt, _:= ioutil.ReadAll(conn);
}

注意:net: don’t return io.EOF from zero byte reads issue

参考

https://stackoverflow.com/questions/12741386/how-to-know-tcp-connection-is-closed-in-net-package