gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 12:37:50 24 4
gpt4 key购买 nike

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

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

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

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

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

我正计划使用线程池。但是,也许 libev 可以支持无阻塞的处理步骤?

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

最佳答案

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

关于linux - 处理从套接字读取的数据的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6085863/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com