Все-таки вернуть socket timeout для клиента, с ним надежнее и правильнее с выбранной реализацией примера с блокирующим read