2010-12-07 2 views
2

Поддерживает ли boost :: asio правильное соединение с рекурсивным сервером?boost :: asio и рекурсивные серверные вызовы

У меня есть асинхронный сервер TCP/IP, который соединяется с самим собой из обработчика async_read и кажется заторможенным: следующий async_accept работает, но блоки async_read.

Сервер основан на примере http asio с пулом потоков.

Он реализует определенный API, который используют клиенты, а также может делегировать некоторые функции другому серверу (действуя как прокси-сервер или узел облака). Проблема в том, что когда другой сервер является localhost (например, сам), тупик происходит где-то внутри библиотек asio.

Любые предложения?

+0

Можете ли вы разместить код? – 2010-12-28 16:12:10

+0

Ну, я действительно понял, что внутри ASIO существует глобальная сеть SSL, которая вызывает тупик. Это очень печально, так как я должен искать обходной путь сейчас. На самом деле есть патч, который улучшает ситуацию, но не полностью ее разрешает: https://svn.boost.org/trac/boost/ticket/3958 – dremon 2011-01-09 18:41:57

ответ

1

Я действительно выяснил, что проблема связана с SSL-сокетами - взаимоблокировка функции установления связи при вызове сервера. Вероятно, связано с цепочкой внутри кода asio ssl.

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