QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3164|回复: 3

高手你好:Linux 异步Socket怎么做?

[复制链接]
发表于 2003-12-9 13:12:17 | 显示全部楼层 |阅读模式
Linux 异步Socket怎么做?
有相关的API??
发表于 2003-12-9 14:12:58 | 显示全部楼层
Unix 世界中,我们用非阻塞I/O 配合 select or poll 来实现单进程(线程)多路复用。除此之外Linux 也支持信号驱动的 I/O,内核通过 SIGIO 来通报进程,这样编程比较累而效率提高不多。

最后,如果你的“异步”指的是 POSIX.1b 实时扩展中的 aio,在 kernel 2.5 之前 glibc 有用线程模拟的 aio 实现,2.5 以后内核开始支持 aio,但根据传闻似乎仍然不支持 socket。
回复

使用道具 举报

 楼主| 发表于 2003-12-10 09:04:22 | 显示全部楼层
xLoneStar, 你好!
像VC++MFC的CAsyncScoket,在Linux下相近的东西有吗?
还请介绍非阻塞与异步的区别!

Thanks in advace!
回复

使用道具 举报

发表于 2003-12-12 22:48:56 | 显示全部楼层
我对 MFC 不熟。但你既然提到它,我猜测你想要的并不是提高 I/O 效率,而是希望有个能简化编程的框架。那么,就不要在 C 函数库这一层寻找了

GUI 程序是一类希望得到这样的“异步”能力的程序,在不希望多线程模型带来额外复杂性的同时,为了使用户界面保持响应,程序又不能被阻塞。这就是为什么 Windows API 中有十分强的“异步”支持。同理,为解决此类问题,常用的图形库如 GTK 和 Qt 都对此有不同程度的支持。

但如果,你又想获得高性能的 I/O,又不想深陷于系统内部实现的细节之中,有一个 C++ Framework 也许帮得了你,就是 ACE, The ADAPTIVE Communication Environment
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-9 06:26 , Processed in 0.037207 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表