Из чтения других записей и документации boost::asio
я подтвердил, что нет синхронных вызовов чтения/записи ASIO, которые также предоставляют простой в использовании тайм-аут в качестве параметра для вызова.
Я нахожусь в середине преобразования приложения сокета старой школы Linux с вызовами select (2), в которых используются таймауты, и мне нужно сделать больше или меньше того же.
Итак, каков наилучший способ сделать это в boost::asio
? Глядя на документацию по asio, есть много запутанных примеров различных вещей, связанных с таймерами, но я очень смущен.
Мне бы хотелось увидеть простой для чтения пример: Прочитать из сокета, но ждать максимум Х секунд, после которого функция либо возвращается ни с чем, либо возвращается с тем, что было способный читать из сокета до истечения времени ожидания.