Visual C#实现HTTP代理服务程序(图) | |||
---|---|---|---|
http://www.sina.com.cn 2006年02月27日 11:37 天极yesky | |||
作者:阿虎 网络代理程序的种类非常多,根据代理服务程序代理的协议不同,分成HTTP代理服务程序、FTP代理服务程序等,运行代理服务程序的服务器也就称为HTTP代理服务器和FTP代理服务器。在本节中介绍的Web代理服务程序代理的就是HTTP协议。
二.Visual C#实现Web代理服务程序 Web代理服务是代理服务中最常用的一种代理服务,按照代理服务的层次,它属于应用层代理,是对TCP/IP参考模型中的应用层的HTTP协议的代理。 Web代理服务也是代理服务中的一种,所以它也要满足代理服务的基本条件。在下面介绍的代理服务程序中,是按照下列的顺序来实现其功能的。 (1). 代理服务器程序侦听端口,接收客户端浏览器发送来的Web请求信息。 (2). 代理服务器程序接收到客户端Web请求信息后,解析出Web服务器的地址,并创建一个Socket实例,并以此实例连接Web服务器上。 (3). 通过创建的Socket传送客户端的Web请求数据包到Web服务器的80端口。 (4). 代理服务器程序接收Web服务器返回页面数据。 (5). 代理服务器程序把接收来的数据传送到客户端,实现Web代理。 由于客户端的对一个地址的浏览,要传送很多的Web请求信息,为了更快、更准确的处理这些信息,Web代理服务程序采用了多线程来处理每一个Web请求。细心的读者可能会发现,处理每一个客户端的Web请求信息,代理服务器软件都要使用二个Socket,一个是用来接收/传送客户机的信息,一个是和Web服务器进行交流。为了区分这二个Socket,我们把他们都命名,和服务器对话的Socket,称为服务Socket;和客户端机器对话的Scoket,称为客户Socket。 下面就开始Web代理服务程序的编写工作。 这个示例主要包含三个部分内容: ·创建一个Web代理类。 ·Web代理服务的类的实例化。 ·如何通过这个Web代理类的实例实现Web代理服务。 下面就是第一部分的具体的实现步骤。 (一).创建一个Web代理类 以下是具体的操作步骤如下: 1. 首先启动Visual Studio .Net,依次选择"文件"、"新建"、"项目"菜单后,在弹出"新建项目"对话框中将"项目类型"设置为"Visual C#项目",将"模板"设置为"Windows应用程序",在"名称"文本框中输入"WebProxy",在"位置"的文本框中输入"E:\VS.NET项目",然后单击"确定"按钮。这样在"E:\VS.NET项目"目录中就创建了一个新名称为"WebProxy"文件夹,里面存放的就是"WebProxy"的项目文件。 2. 选择菜单【项目】|【添加类】,弹出【添加新项】对话框 3. 将【模板】设置【类】 4. 在【名称】文本框中输入【Proxy】,单击【打开】按钮,具体如图02所示。 图02:Web代理项目中【添加新项】对话框 5. 在【解决方案资源管理器】窗口中,双击Proxy.cs文件,进入Proxy.cs文件的编辑界面。
|