Async Socket IO

Async Socket IO

本文关键字:IO Socket Async      更新时间:2023-10-16

为了刷新和扩展我的c++知识,我正在尝试实现fcgi应用程序并实现fcgi接口。然而,我没有使用套接字的经验。研究让我找到了Boost。asio,但是由于我缺乏套接字知识,我发现很难通过教程来使用这个库,这些教程有时只是代码示例,当你不知道你在找什么时,浏览一个api参考是很困难的。

问题:

  1. 哪个教程(除了boost.asio)/书你会推荐阅读套接字/异步IO?
  2. 对于fcgi,我发现很难理解AsyncIO的好处,头必须先解码,然后可以接收数据,如何通过异步I/O获得好处?
  3. 是否有一些启发式来知道哪些参数(线程数,每个线程的套接字,套接字多路复用(是(有多少连接?)/否,异步IO,缓冲区大小)为fcgi接口产生最佳性能?

我推荐(免费)BeeJs网络指南或(付费)W Richard Stevens关于sockets的书。

AIO(在本例中)是一种对多个连接进行多路复用的方法。如果你没有多个连接,你不会看到任何好处。这也是完成这项任务最快但最难的方法。其思想是,任何个人对连接的读写都可能需要等待资源可用的时间。AIO允许您的应用程序在等待这些资源的同时转移到另一个连接和服务。简而言之,你的应用程序在多个连接上花费更多的时间工作,更少的时间等待。

。这取决于您的体系结构和预期负载。真正聪明的web服务器会根据配置和测量的使用情况调整所有这些。