使用 C++ 和标准 C 库以异步方式实现套接字连接读取超时处理的最佳方法

Best way to implement handling of read timeouts of socket connections in asynchronous way using C++ and standard C library

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

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

简而言之,我想实现读取超时或套接字读取的异步处理。因此,线程可以在将数据发送到服务器 B 后返回到池中,以防万一服务器 B 变慢,服务器 A 仍在服务请求。 我的理解是可以用poll,select系统调用来实现,但是最好用什么way/practice来实现。 (我不能使用 boost)

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