2013-02-23 2 views
3

Я использую boost::asio как в async, так и в режиме синхронизации. Один поток в моем приложении async_accept сокет, а другой поток - чтение/запись из этого сокета синхронно.C++ boost: asio конвертировать сокет в поток?

AFAIK boost::asio::ip::tcp::iostream объект может быть создан путем непосредственного соединения с конечной точкой. Я ищу способ получить объект потока из сокета obj, поэтому я могу сделать свой общий коммуникационный lib. Есть ли способ получить этот объект из сокета obj?

+3

Есть ли причина, по которой вы должны держать ящик явно, а не просто использовать iostream в соответствии с примером здесь: http://www.boost.org/doc/libs/1_53_0/doc/html/boost_asio/example /iostreams/daytime_server.cpp? В примере используется синхронное принятие, но async_accept допускает одно и то же поведение. – diverscuba23

ответ

1

Избегайте внутренней синхронизации синхронизации с асинхронным режимом. Внешне подражать одному из тех, кто использует другие. Поскольку asio использует async, используйте async и эмулируйте синхронизацию, ожидая завершения операции async.

Смежные вопросы