2008年8月18日
摘要: 一、完全端口模型(I/O completion ports)是迄今为止最为复杂的一种I/O模型,假如一个程序需要管理为数众多的套接字,那么采用这种模型往往可以达到最佳的系统性能,不幸的是该模型 只适用与WIN2000和WINNT操作系统,因其设计的复杂性,只有在你的应用程序需要同时管理数百乃至上千个套接字的时候,而且希望随着系统内安装的 CPU的数量增多,应用程序的性能也可以线性的提升,才考虑采... 阅读全文
posted @ 2008-08-18 19:56 风荷小筑 阅读(366) 评论(0) 推荐(0)
摘要: 这是一对实现在两台计算机间传送文件的函数,我没有看到过使用CSocket进行文件传送的代码,希望此代码对你有用.代码中包含两个函数,第一个用于服务器端,第二个用于客户端. 需要说明的是本文提供的方法并不适用于大型文件的传送. 下面给出服务器端代码: Code highlighting produced by Actipro CodeHighlighter (freeware... 阅读全文
posted @ 2008-08-18 19:28 风荷小筑 阅读(354) 评论(0) 推荐(0)
摘要: Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> 1 #include "stdafx.h" 2 #include 3 #include 4 //using namespace std; 5 6 #pragma comment... 阅读全文
posted @ 2008-08-18 16:14 风荷小筑 阅读(307) 评论(0) 推荐(0)
摘要: 我会从以下几个方面来进行比较 *有无每线程64连接数限制 如果在选择模型中没有重新定义FD_SETSIZE宏,则每个fd_set默认可以装下64个SOCKET。同样的,受MAXIMUM_WAIT_OBJECTS宏的影响, 事件选择、用事件通知实现的重叠I/O都有每线程最大64连接数限制。如果连接数成千上万,则必须对客户端套接字进行分组,这样,势必增 加程序的复杂度。 相反,异步... 阅读全文
posted @ 2008-08-18 09:43 风荷小筑 阅读(432) 评论(0) 推荐(0)
摘要: 背景:轮询 PIO DMA 中断 早期IO设备的速度与CPU相比,还不是太悬殊。CPU定时轮询一遍IO设备,看看有无处理要求,有则加以处理,完成后返回继续工作。至今,软盘驱动器还保留着这种轮询工作方式。 随着CPU性能的迅速提高,这种效率低下的工作方式浪费了大量的CPU时间。因此,中断工作方式开始成为普遍采用的技术。这种技术使得IO设备在 需要得到服务时,能够产生一个硬件中断,迫使... 阅读全文
posted @ 2008-08-18 09:15 风荷小筑 阅读(594) 评论(0) 推荐(0)
摘要: 一、 同步I/O和异步I/O 在介绍这部分内容之前先来认识下“异步I/O”。 说起异步IO,很容易联想到同步I/O,对于同一个I/O对象句柄在同一时刻只允许一个I/O操作,其原理如下图所示: 显然,当内核真正处理I/O的时间段(T2~T4),用户线程是处于等待状态的,如果这个时间段比较段的话,没有什么影响;倘若这个时间段很长的话,线程就会长时间处于挂起状态。事实上,该线程完全可... 阅读全文
posted @ 2008-08-18 09:08 风荷小筑 阅读(982) 评论(0) 推荐(0)