2

我最近在 windows 平台上遇到了一个叫做 IOCP 的东西,更准确地说:输入/输出控制端口。当服务器软件需要同时容纳数千名用户时,这似乎是编写服务器软件的最有效方式。(如果我错了,请纠正我,但是每个套接字的线程、轮询和异步回调(每个回调上的线程)都不够有效。)

我想知道是否有任何 3rd 方库可以实现这个概念。我知道 win32 api 为我们提供了 CreateIoCompletionPort,FreeBSD 有 kqueue,而 linux 通常可以使用 /dev/epoll,它们的工作方式有点相似......但是没有一个跨平台库(比如 boost::thread)来处理这些东西为了我?

4

3 回答 3

6

你看过 boost::asio 吗?我不确定它是否具有所有这些功能,但我相信这是它的目的之一。

于 2009-01-03T12:26:16.380 回答
2

我知道这是对该主题的较晚回复,但对于那些对在 Linux/UNIX 和 Windows 上支持异步 IO 的 x 平台库感兴趣的人,您可能想看看libuv

libuv最初是作为 node.js 的基础构建的,但它已经发展成为一个强大的抽象库,用于许多低级的 x 平台问题,包括异步 IO、非阻塞 TCP 套接字和命名管道、UDP、计时器、子进程生成、高分辨率时间、线程池调度等。

于 2012-12-10T23:09:51.300 回答
1

libevent可以在许多 *nix 操作系统上运行,也可以在 Windows 上运行。

于 2009-12-12T08:06:14.373 回答