Linux 2.6的posix aio是否支持套接字文件描述符?

3

我在谷歌上搜索了这个问题,并得到了不同的答案。我无法确定Linux 2.6中的posix aio是否支持套接字文件描述符。

如果它支持TCP套接字,aiocb.aio_offset = 0相对于从TCP套接字fd读取的第一个字节吗?

如果不支持,那么在Linux中是否有任何支持套接字fd的异步IO库?


1
引用@skyde的评论:它并不支持。"在套接字上进行AIO读写(不会返回明确的错误,而是默认为同步或非AIO行为)" - http://lse.sourceforge.net/io/aio.html - jweyrich
1个回答

0

上面的评论说aio不支持sockets。你询问可能的替代方案。

显而易见的选择是:

  • 使用事件驱动的编程模型,手工生产poll(2)或您拥有的其他方式,或通过像Niels Provos的“libevent”这样的库
  • 使用线程

我通常更喜欢采用事件驱动的方式来处理事情,并通常使用libevent,文档在这里:http://libevent.org/

然而,请记住,事件驱动的编程与您在程序组织方面所习惯的相差甚远。线程在概念上类似,但在处理大量套接字时通常效率较低。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接