异步套接字IO

时间:2014-03-24 08:53:51

标签: c++ sockets asynchronous

要刷新和扩展我的C ++知识,我正在尝试实现一个fcgi应用程序并自己实现fcgi接口。但是,我没有使用套接字的expierience。研究引导我进入Boost.asio,但由于我缺乏套接字知识,我发现教程很难使用库,有时只是代码示例,当你不知道你在寻找什么时浏览apireference困难的。

问题:

  1. 你会建议阅读有关套接字/ asynchronus IO的哪个教程(除了与boost.asio即将推出的教程之外)?
  2. 对于fcgi,我发现很难理解AsyncIO的好处,首先必须解码头,然后才能接收数据,如何通过异步I / O获益?
  3. 是否有一些启发式方法可以知道哪些参数(线程数,每个线程的套接字,套接字多路复用(是(多少个连接?)/ no,async IO,buffersize)产生fcgi接口的最佳性能?

1 个答案:

答案 0 :(得分:3)

我会在套接字上推荐(免费)BeeJs networking guide或(付费)W Richard Stevens book

AIO(在这种情况下)是一种多路复用多路连接的方法。如果您没有多个连接,您将看不到任何好处。这也是执行此任务的最快但最难的方法。这个想法是任何个人读取或写入连接可能需要花费时间等待资源可用。 AIO允许您的应用程序在等待这些资源时转移到另一个连接和服务。简而言之,您的应用会在多个连接上花费更多时间工作,等待时间更短。

没有。这取决于您的架构和预期的负载。真正聪明的Web服务器将根据配置和测量的使用情况调整所有这些。