keep socket live even read data time out

support keep socket live even read data time out.
My application need to read out some info block from an device, but total number of block is unknown until read time  out, so need the socket keep live to more operation.