处理从套接字读取的数据的最有效方法是什么



我想将libev用于我正在编写的流媒体服务器。

这就是一切应该如何工作:

  1. 客户端打开与服务器的 TCP 套接字连接
  2. 服务器接收连接
  3. 客户端发送他们想要的图像列表
  4. 服务器读取请求
  5. 服务器遍历所有映像
    • 服务器从 NAS 读取映像
    • 服务器处理图像文件元数据
    • 服务器将图像数据发送到客户端

找到了允许我使用 libev I/O 事件(引擎盖下的 epoll)从套接字读取和写入的示例代码。但是,我不确定如何处理从 NAS 读取和处理。这可能需要一些时间。而且我不想在发生这种情况时阻止服务器。

这应该在另一个线程中完成,并让线程发送图像数据回馈给客户端?

我打算使用线程池。但是,也许 libev 可以支持处理步骤而不会阻塞?

任何想法或帮助将不胜感激!

您需要

一个支持异步读取的文件 I/O 库(例如 Boost::ASIO)。 底层的API是aio_readaio_suspendlio_listio

相关内容

  • 没有找到相关文章

最新更新