目录
一、课题背景
二、本课题研究的意义
三、本课题的研究方法
四、设计方案
4.1基本函数设计
4.2多线程流程
五、网络代理的实现
5.1环境创建
5.2测试结果
结 论
参考文献
一、课题背景
普通的因特网访问是一种典型的客户机与服务器结构,而网络代理将运行于客户机与服务器之间,它作为Internet/Intranet上常用的一种服务器,通常配置在Intranet连接Internet的出口处,主要实现代理传输服务。可以这样认为,代理是双向的。即对于内部网上的用户来说,网络代理可看作是一个外部网的代理;对于外部网络来说,网络代理可以看作一个要访问外部网的客户。正是由于网络代理的这种控制方式,可以使用它提高客户访问外网的效率、节省网络带宽,增强网络安全性以及减少网络投资等。网络代理从提出到现在,不断的经历着内容更进和技术的革新,各种网络代理产品更是层出不穷。不难看出,网络代理在我们信息时代的生活中扮演着越来越重要的作用。
二、本课题研究的意义
随着Internet与Intranet的飞速发展,作为连接Internet与Intranet的桥梁,代理服务器在实际应用中发挥着极其重要的作用。它可用于多个目的,最基本的功能是连接;此外还包括安全性、缓存、内容过滤、访问控制管理等功能。在代理服务器的众多功能中,安全性是一个突出且敏感的功能。绝大多数企业、部门在使用代理服务器的时候,都会考虑这个问题,把它作为选购代理服务器产品的重要依据。目前市场上流行的代理服务器,像Microsoft Proxy Server、Netscape Proxy Server、Win Gate等国外的产品,功能和性能等方面都还不错,我们正好可以通过借鉴它们产品的优点,开发一个具有自主产权的网络代理产品。而且从保证安全性的角度出发,我们也很有必要开发一个自己的代理服务器。除了上面的因素外,通过一个简单的代理程序的开发,我们能从实现过程中学习到网络通信和网络编程的基础知识,加深理解和掌握我们所使用的开发语言。另外,我们也能从中学习到正确的程序开发流程,积累程序开发经验,为以后更深课题的研究打好基础。
三、本课题的研究方法
此代理服务器系统将是建立在Windows平台上的网络应用程序设计。由于需要服务器为其他许多称为客户的主机提供服务,而客户主机又可以随时打开和关闭,在选择网络应用程序体系结构时就采用支持这些特点的客户机/服务器结构。还将运用Windows下网络编程的标准接口WinSock ,因为它允许两个或多个应用程序在相同机器上,或者是通过网络相互交流,它是真正协议无关的接口。
为了便于直接使用Windows提供的网络编程接口,我们使用Microsoft Visual C++ 6.0作为开发工具,利用MFC类库中提供的两个Socket类CAsyncSocket和Csocket。使用这两个Socket类,我们可以运用面向对象的方法来进行Socket编程,而且它们还分别在较低和较高层次上封装了Windows Sockets API,为程序员开发Socket程序提供了便利。
四、设计方案
4.1基本函数设计
我们根据上面讨论的网络代理内容容易画出网络代理的简单流程模型:
图2 网络代理的流程