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

如果支持tcp socket,aiocb.aio_offset=0是否相对于从tcp socket fd读取的第一个字节

如果不支持,linux中的异步io库是否支持socket fd?

请您参考如下方法:

上面的注释指出 aio 不支持套接字。您要求可能的替代方案。

最明显的是:

  • 使用事件驱动的编程模型,可以使用 poll(2) 或您拥有的工具手动生成,也可以通过像 Niels Provos 的“libevent”这样的库生成
  • 使用线程

我通常更喜欢事件驱动的做事方式,并且通常使用 libevent,它记录在这里:http://libevent.org/

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


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!