IOCP,跨平台库?

时间:2009-01-03 12:11:28

标签: c++ iocp

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

我想知道是否有任何第三方库可以实现这个概念。我知道win32 api为我们提供了CreateIoCompletionPort,FreeBSD有kqueue和linux一般可以使用/ dev / epoll,它的工作方式有点类似......但是不存在处理这个东西的跨平台库(如boost :: thread)对我来说?

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:2)

我知道这是对此主题的回复,但对于那些对Linux / UNIX和Windows上支持异步IO的x平台库感兴趣的人,您可能需要查看libuv。< / p>

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

答案 2 :(得分:1)

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