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



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

现在,服务器a上的一个工作线程从套接字中提取数据,并通过TCP/IP将数据发送到服务器B,以防服务器B速度慢,我的服务器线程会一直等待。它是完全同步的。

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

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

最新更新