0

我目前正在探索 linux 上的 aio 以使用它来实现 Web 服务器。正如我已经发现的那样,没有太多资源可以详细介绍 aio 的用法。

问题是——在使用 aio 的单线程应用程序中接受客户端连接的传统方式是什么?(尽可能减少阻塞)

理想情况下,我可以看到 aio_accept 操作发送一个通知(在我的例子中是回调函数调用),表明连接已建立,并且在处理程序内立即调用 aio_read。但是没有这样的电话:(

谢谢!

4

1 回答 1

1

我认为 aio 不适用于预接受套接字。

您可能想选择它们,或者在准备好时获取 SIGIO。

[编辑]

具体来说,手册页说:“打开文件的设备必须允许查找操作。也就是说,不能在终端等设备上使用任何 AIO 操作,在这些设备上调用 lseek 会导致错误。”

套接字不允许搜索操作,所以即使是接受后的套接字也会显得不走运。

于 2011-05-25T19:45:18.587 回答