C ++ Boost ASIO: как читать / писать с таймаутом?

Из чтения других записей Stack Overflow и документации boost :: asio , Я подтвердил, что не существует синхронных вызовов чтения / записи ASIO, которые также предоставляют простой в использовании тайм-аут в качестве параметра вызова.

Я нахожусь в середине преобразования приложения сокетов Linux старой школы с вызовами select (2), которые используют таймауты, и мне нужно сделать примерно то же самое.

Итак, как лучше всего сделать это в boost :: asio ? Глядя на документацию asio, можно найти много запутанных примеров различных вещей, связанных с таймерами, но я очень запутался.

Я бы хотел увидеть простой для чтения пример этого: Читать из розетка, но подождите максимум X секунд, после чего функция либо вернется ни с чем, либо вернется с тем, что она смогла прочитать из сокета до истечения времени ожидания.

22
задан Peter Mortensen 29 May 2014 в 13:15
поделиться