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