У меня есть улучшенное серверное приложение asio, и я борюсь с тем, как передать созданные сокеты (например, передать принимающий сокет в классы реализации протокола, которые будут читать / записывать данные в будущем)
Например, еслиЯ делаю их передаваемыми shared_ptr различным классам, которые читают / пишут им, это работает.Мой сервер имеет io_service.run () перед выходом из основной программы, и все асинхронные операции, выполняемые на этих сокетах, выполняются там.
EDIT Я обнаружил, что проблема не в том,Я передавал сокет класса.Можно сохранить владение ими в классе и передать ссылку на дорогу.В моем случае один из классов соединения был уничтожен до того, как обработчик асинхронной операции завершил свою работу.