在Linux 2.6支持套接字文件描述符吗posix aio?

问题描述:

我在google上找到了这样的问题,并得到了不同的答案。我无法确定在Linux 2.6中的posix aio是否支持套接字文件描述符。在Linux 2.6支持套接字文件描述符吗posix aio?

,如果它支持TCP套接字,莫非aiocb.aio_offset = 0相对于从TCP套接字fd readed第一字节?

如果没有,linux中的任何异步io库是否支持套接字fd?

+1

引用@ [skyde]的评论(http://*.com/users/185646/skyde):没有。 “AIO在套接字上读写(不返回明确的错误,但默认默认为同步或非AIO行为)” - http://lse.sourceforge.net/io/aio.html – jweyrich 2011-11-11 15:53:06

上面的注释表明aio不支持套接字。你要求可能的选择。

显而易见的是:

  • 使用事件驱动的编程模型,或者使用轮询用手工制作(2)或你有什么,或通过像尼尔斯·普罗沃斯‘的libevent’
  • 使用的库螺纹

我一般喜欢做的事情的事件驱动方式,一般采用的libevent,这是记录在这里:http://libevent.org/

但请记住,事件驱动的编程与您在程序组织中可能使用的编程有很大的不同。线程在概念上是相似的,尽管在处理大量套接字时效率通常较低。