当前位置:绿色软件下载下载中心其它源码VC/C++源码 → 软件信息
修改了的IOCP例子
软件类型:源码程序 - 其它源码 - VC/C++源码

软件简介

这是我照着
/*++
Copyright (c) 2004 
模块名: 
     iomodel.h
模块描述:
     Winsock 完成端口类头文件
作者:
     PPP elssann@hotmail.com
开发环境:    
     Visual C++ 6.0, Windows 2000. 
--*/

的完成端口例子,做的一个完成端口练习。

我把代码写的更清晰了一些。

还有一点,就是,我使用了一个,我叫做“双链表”的数据结构来管理IO结点和单句柄结点。这个东西是用stl里的list做的。

最开始我是用MFC的CList实现的,但是后来觉得,MFC的使用环境有局限,所以就用stl重做了一次.

"双链表"的原理就是:

有时我们希望以前申请的一个内存结点,用完之后,不被删除,而是放到一个“池”中,以便以后用的时候,直接到“池”中取出一个结点就可以了。

也希望有一个管理正在使用的所有结点的简单方法,所以我用一个叫做“空表”来做为结点的“池”,用另外一个表来管理当前使用的结点。

然后用一个模板类来封装这两个表,并提供一些需要的方法,使使用都通过这些简单的方法,就可以完成所有的操作。

感觉这个“双链表”,在消息结点处理,需要队列的地方,很有用处。

///////////////////////////////////////////////////////

这个文件夹里,有一个用来测试的客户端。

我还没有测试很多个连接时会是什么样.

//////////////////////////////////////////////////////

改了几个地方,但是有个问题,我没有解决:

AcceptEx可以直接得到连接者的IP和PORT,据MSDN上说,它接收到的数据为:数据+local addr + remote addr,

但是我怎么解析都没有得到remote addr,请哪位高手帮忙了。

下载地址