优秀的毕业设计论文网
计算机 JAVA 电子信息 单片机 机械机电 模具 土木工程 建筑结构 论文
热门搜索词:网络 ASP.NET 汽车 电气 数控 PLC

模拟代理服务器工作原理程序

以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
  
资料介绍:
代理服务器的模拟实现,主要是以下几方面:
数据变量定义
首先定义了HTTP协议的程序,对缓冲区进行一个估计并定义全局变量。采用相关结构体里面定义客户端到代理服务器及代理服务器到Server间套接字两个,以及客户端、代理服务器和Server间的连接状态变量两个;Str_ProParam结构体定义Server地址变量,联结Server主机的端口变量和代理服务器到Server连接状态的句柄变量,这个结构体是用来代理服务器与服务器主机交换信息。
启动代理服务器
这里,在运用套接字编程中由于Winsock在被调用时是动态链接库Winsock DLL形式实现的,首先需调用WSAStartup()函数对Winsock DLL进行初始化,它的第一个参数指定要加载的Winsock库的版本,高字节为次版本号,低字节为主版本号;第二个参数是用来返回DLL库的详细信息,是指向WSADATA结构的指针。
请求处理过程
在这一步设计代理函数,并将请求合理传送至Server(客户请求的数据服务器)。当客户端有请求发到代理服务器时,侦听中的Proxy就会调用函数accept来响应对主机的连接请求,同时Proxy会启动另一个侦听线程,以准备接收客户端的下一个请求。
请求响应
这一步中,编码完成了代理函数的实现。首先要做数据服务器Server主机地址信息的转换,定义一个hostent结构变量*hp来保存。 [资料来源:http://www.THINK58.com]
关闭服务器
当代理服务器用完后,根据windows的API函数去关闭代理服务器,再用WSACleanup()来释放分配给指定应用程序的资源。注意,程序中多次用到WSACleanup(),这是因为应用程序或DLL在使用Windows Sockets服务之前必须要进行一次成功的WSAStartup()调用.当它完成了Windows Sockets的使用后,应用程序或DLL必须调用WSACleanup()将其从Windows Sockets的实现中注销,并且该实现释放为应用程序或DLL分配的任何资源.
控制主函数
由于控制台应用程序本身不具备窗口应用程序中良好的界面操作性,因此主函数内只能对程序界面操作进行简单的控制。用StartProxy()启动服务后可以让程序准备接收一个字符,根据字符判断代理服务器是否要主动关闭。这之前还需要让用户输入代理服务器的端口号,提示用户最好选用系统保留端口号之外的可用端口。