Timeout on recv to prevent forever sleeping on data receipt