WEB开发网
开发学院软件开发VC 一个简单的完成端口(服务端/客户端)类 阅读

一个简单的完成端口(服务端/客户端)类

 2009-02-25 19:59:50 来源:WEB开发网   
核心提示: 这个问题的解决方法是添加一个数字到结构中,包含等待的I/O请求的数量(m_nNumberOfPendingIO),一个简单的完成端口(服务端/客户端)类(8),然后当我们知道没有等待的I/O请求时删除这个结构,这个功能通过函数EnterIoLoop(…) 和ReleaseCl

这个问题的解决方法是添加一个数字到结构中,包含等待的I/O请求的数量(m_nNumberOfPendingIO),然后当我们知道没有等待的I/O请求时删除这个结构。这个功能通过函数EnterIoLoop(…) 和ReleaseClientContext(…)来实现。

3.7 源码略读

源码的目标是提供一系列简单的类来处理所有IOCP编码中的问题。源码也提供了一系列通信和C/S软件中经常使用的函数,如文件接收/传送函数,逻辑线程池处理,等等。

一个简单的完成端口(服务端/客户端)类

上图功能性的图解说明了IOCP类源码。

我们有几个IO工作者线程通过完成端口来处理异步IO请求,这些工作者线程调用一些虚函数,这些虚函数可以把需要大量计算的请求放到一个工作队列中。逻辑工作者通过类中提供的这些函数从队列中取出任务、处理并发回结果。GUI经常与主类通信,通过Windows消息(因为MFC不是线程安全的)、通过调用函数或通过使用共享的变量。

一个简单的完成端口(服务端/客户端)类

图三

上图显示了类结构纵览。

图3中的类说明如下:

> CIOCPBuffer:管理异步请求的缓存的类。

> IOCPS:处理所有通信的主类。

> JobItem:保存逻辑工作者线程要处理的任务的结构。

> ClientContex:保存客户端特定信息的结构(如状态、数据,等等)。

3.7.1 缓冲设计 - CIOCPBuffer类

上一页  3 4 5 6 7 8 9 10  下一页

Tags:一个 简单 完成

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接