linux - 在主动网络服务器中接受连接的传统方式(使用异步 IO)

标签 linux sockets network-programming aio

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

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

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

谢谢!

最佳答案

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

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

[编辑]

特别是手册页说:“打开文件的设备必须允许搜索操作。即,不可能在 lseek 的终端等设备上使用任何 AIO 操作 调用会导致错误。”

套接字不允许查找操作,因此即使是后接受套接字似乎也不走运。

关于linux - 在主动网络服务器中接受连接的传统方式(使用异步 IO),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6129937/

相关文章:

linux - SVN 不提示输入用户名和密码

linux - 如何在bash中将结果转换为整数

linux - 如何查找当前登录终端的IP?

android - 发送套接字时出错 [WinError 10061] 无法建立连接,因为目标机器主动拒绝了从 Python 到 Android 的 Socket

visual-c++ - 用于网络监控的 Visual C++ API

java - 我可以识别所有连接到 wifi 网络的 android 的主机名吗?

c - SSL 例程 :SSL3_READ_N:read bio not set

linux - 对文本文件中的每一行进行排序

c++ - 通过本地 UNIX 套接字发送双倍

html - 这个套接字错误是什么意思?