【问题标题】:Best way to implement handling of read timeouts of socket connections in asynchronous way using C++ and standard C library使用 C++ 和标准 C 库以异步方式实现处理套接字连接的读取超时的最佳方法
【发布时间】:2019-04-17 06:29:36
【问题描述】:

有成千上万的客户端通过 TCP/IP 访问我的服务器 (A),然后我需要修改接收到的数据并将其发送到另一台服务器 (B),然后获取响应并将其发送回客户端,或处理读取超时。

现在服务器 A 上的工作线程从套接字中选择数据通过 TCP/IP 将数据发送到服务器 B,如果服务器 B 速度很慢,我的服务器线程会一直等待。它完全同步。

简而言之,我想实现读取超时或套接字读取的异步处理。因此,线程可以在向服务器 B 发送数据后返回池,如果服务器 B 变慢,服务器 A 仍在处理请求。 我知道我们可以使用民意调查,选择系统调用来实现,但是实现它的最佳方式/实践应该是什么。 (我不能使用 boost)

【问题讨论】:

    标签: c++ multithreading sockets select client-server


    【解决方案1】:

    您需要使用带有事件循环库的非阻塞套接字,例如 boost::asio、libevent、libuv。或者,重新发明自己的轮子。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-25
      • 2011-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-18
      • 2017-04-10
      • 2014-01-22
      相关资源
      最近更新 更多