我想将 libev 用于我正在编写的流媒体服务器。
这就是一切应该如何工作的方式:
- 客户端打开到服务器的 TCP 套接字连接
- 服务器接收连接
- 客户发送他们想要的图像列表
- 服务器读取请求
- 服务器循环遍历所有图像
- 服务器从 NAS 读取图像
- 服务器处理图像文件元数据
- 服务器向客户端发送图像数据
我找到了允许我使用 libev I/O 事件(引擎盖下的 epoll)从套接字读取和写入的示例代码。但是,我不确定如何处理来自 NAS 的读取和处理。这可能需要一些时间。而且我不想在发生这种情况时阻止服务器。
这是否应该在另一个线程中完成,并让线程将图像数据发送回客户端?
我打算使用线程池。但是,也许 libev 可以支持一个处理步骤而不阻塞?
任何想法或帮助将不胜感激!