c++ - boost::asio 和递归服务器调用

标签 c++ boost tcp boost-asio

boost::asio 是否正确处理递归服务器连接?

我有一个 TCP/IP 异步服务器,它从 async_read 处理程序中连接到它自己并且似乎死锁:下一个 async_accept 正在工作但 async_read 阻塞。

服务器基于带有线程池的 http asio 示例。

它实现了客户端正在使用的特定 API,并且还可以将某些功能委托(delegate)给另一台服务器(充当代理或云节点)。问题是,当另一台服务器是本地主机(例如它自己)时,死锁发生在 asio 库中的某处。

有什么建议吗?

最佳答案

我实际上发现问题出在 SSL 套接字上 - 当服务器调用自身时,握手函数会死锁。可能与 asio ssl 代码中的一条链有关。

关于c++ - boost::asio 和递归服务器调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4376124/

相关文章:

sockets - 有没有办法使用 TCP keepalive 作为事件?

c++ - 如何使用 AND 运算符编写正则表达式?

C TCP 套接字 - 获取数据包目标名称

c++ - OpenGL GLFW 简单立方体不渲染

c++ - 使用 boost::asio::ip::tcp::iostream 的低带宽性能

c++ - 为什么 const char* 不适用于 stringstream 和 boost 的 read_json?

c++ - 如何将 std::chrono::minutes 与 boost::json tag_invoke value_from 配合?

C# 如何确保所需的 UDP 数据到达客户端/服务器?

c++ - 通过 move 同一语句中使用的变量进行捕获

c++ - 如何在 C++ 中实现 MATLAB 函数 wavread()?