摘要: 在前一篇文章《WinSock2编程之打造完整的SOCKET池 》中,介绍了WinSock2的一些新函数,并重点详细介绍了什么是SOCKET池,有了这个概念,现在就接着展开更深入的讨论。 首先这里要重点重申一下就是,SOCKET池主要指的是使用面向连接的协议的情况下,最常用的就是需要管理大量的TCP连接的时候。常见的就是Web服务器、FTP服务器等。 阅读全文
posted @ 2013-04-07 06:48 shines77 阅读(551) 评论(0) 推荐(0) 编辑
摘要: AcceptEx()用来发起一个异步的调用, 接受客户端将要发出的连接请求. 与 accept 不同的是, 你必须先手动创建一个 socket 提供给 AcceptEx, 用来接受连接 ( accept 是内在地创建一个 socket 接受连接, 并返回值 ). 而且, accept 创建的 socket 会自动继承监听 socket 的属性, AcceptEx 却不会. 因此如果有必要, 在 AcceptEx 成功接受了一个连接之后, 我们必须调用: setsockopt( hAcceptSocket, SOL_SOCKET, SO_UPDATE_ACCEPT_CONTEXT, ( char* )&( hListenSocket ), sizeof( hListenSocket ) ); 来做到这一点. 阅读全文
posted @ 2013-04-07 06:02 shines77 阅读(457) 评论(0) 推荐(0) 编辑
摘要: Libevent 有一些共享于所有模块之间且会影响整个库的全局设置。 在你调用 Libevent 库任何部分的代码之前,你必须修改这些设置。如果你不这么做,将导致 Libevent 处于不一致的状态。 阅读全文
posted @ 2013-03-14 00:15 shines77 阅读(2130) 评论(0) 推荐(0) 编辑
摘要: Libevent 是一个用于编写高速的、可移植的非阻塞IO的应用库,其设计目标是:可移植性、高效、可扩展、方便稳定。 使用 Libevent 编写的程序应该可以在 Libevent 支持的所有平台上工作。Libevent 在每个平台上尝试使用最高速的非阻塞IO实现方式,并且没有因为这做而引入太多的额外开销。Libevent 被设计为即使程序需要上万个活动套接字的时候也可以良好工作。无论何时,最自然的使用 Libevent 编写程序的方式应该是稳定的、可移植的。 阅读全文
posted @ 2013-03-13 23:53 shines77 阅读(625) 评论(0) 推荐(0) 编辑