Я понял, что я делаю неправильно, не уверен, почему это привело к появлению симптомов, которые я видел, но когда я прочитал с помощью async_read()
в обработчике deadline_timer
, после того, как я это сделал, я очистил свой boost::asio::buffer
получить буфер с memset()
после каждого чтения.Я знаю, что мне, вероятно, не нужна эта очистка памяти.Проблема заключалась в том, что я очищал больше памяти, чем я дал async_read()
с помощью буфера приема, поэтому я устанавливал неправильные расположения.Я не уверен, почему это привело к тому, что deadline_timer
никогда больше не стрелял, а также async_read()
после этого тоже не сработало.