VC3059简易代理服务器研究设计与应用.docVIP

VC3059简易代理服务器研究设计与应用.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
简易代理服务器的设计 摘 要 代理服务器是介于浏览器和Web服务器之间的一台服务器,它的功能是代理网络用户去取得网络信息。它的工作原理是,接收客户机的数据连接请求,并将请求传给Web服务器;再从Web服务器接收返回的数据,最后把数据传给客户端显示。本论文讲述的是关于一个简单的代理服务器的实现,在实现中采用客户机/服务器结构模型开发应用程序,基于一般的访问浏览速度慢、效率底、安全功能不强等原因,将以简单、合理、有效为原则;为了方便分析和设计,系统设计中设置不同的状态量用于标识客户机、代理服务器及服务器间的联结状态。在保证系统基本功能的同时,使用多线程机制使得代理系统有更好的延续性。此代理系统具有简单,易用,网络化等优点,能够完成一般的HTTP访问代理服务 目 录 论文总页数:20页 1 引言 1 1.1 课题背景 1 1.2 本课题研究的意义 1 1.3 本课题的研究方法 1 2 理论基础 2 2.1 代理服务器 2 2.2 目前的代理服务技术 3 2.3 Socket 面向连接的编程模型 4 2.4 Winsock库 5 2.4.1 winsock的寻址方式 5 2.4.2 字节顺序 6 2.5 系统基本套接字调用 6 2.5.1 创建和关闭套接字-socket()和closesocket() 6 2.5.2 指定本地地址-bind() 6 2.5.3 设置监听状态-listen() 6 2.5.4 建立套接字连接-connect()和accept() 6 2.5.5 收发数据-send()和recv() 7 3 设计方案 7 3.1 基本函数设计 7 3.2 多线程流程 8 4 服务器的实现 8 4.1 环境创建 8 4.2 功能实现 9 4.2.1 数据变量定义 9 4.2.2 启动代理服务器 10 4.2.3 请求处理过程 11 4.2.4 请求响应 13 4.2.5 关闭服务器 15 4.2.6 控制主函数 15 5 测试结果 15 结 论 17 参考文献 18 致 谢 19 声 明 20 服务器的实现 环境创建 设计使用Visual C++ 6.0作为编程工具,采用Windows XP系统平台。刚开始时运行VC++ 6.0开发工具,单击菜单“Tools/Options...”,弹出Options对话框,选择Directories选项卡,首先在“Show directories for:”下拉菜单中选择Include files,将SDK中头文件的目录添加到:“Directories:”列 表中,如图3所示: 图3 Include files设置 然后在“Show directories for:”下拉菜单中选择Library files,进行同样的设置,如图4所示。在VC主窗口中,执行主菜单“File”/“New”命令,建立一个控制台应用程序类型的工程,工程名为“MiniProxy”;点击“OK”后选择“an application that supports MFC”,之后一直确定,完成项目工程的创建工作。 图4 Library files设置 功能实现 数据变量定义 定义代表http://类型协议的变量HTTP,定义缓冲区大小变量MAXBUFFERSIZE。运用结构体Str_BasalSocket,里面定义客户端到代理服务器及代理服务器到Server间套接字两个,以及客户端、代理服务器和Server间的连接状态变量两个;Str_ProParam结构体定义Server地址变量,指向结构体Str_BasalSocket的指针,联结Server主机的端口变量和代理服务器到Server连接状态的句柄变量,这个结构体是用来代理服务器与Server主机交换信息。 启动代理服务器 测试结果 完成程序的代码编写,通过调试,修改出现的问题后,将设计的程序通过“Build”菜单,选择“Rebuild All”菜 单项重新编译程序,再通过“Ctrl+F5”命令生成.EXE的执行程序。结果如下: 图5 程序编译运行结果 在“Port”处填下端口号,我设定为2000,当然你可能取任意值,回车后完成代理服务器的启动。接下来,需要将IE浏览器“属性”-“连接”-“局域网设置”-“代理服务器”中,服务器地址填入本机IP地址,端口就填入我们上面设定的2000,确定后完成客户端代理服务器的设置。设置结果如下所示: 图6 代理设置 打开IE浏览器,输入请求数据访问。这时客户端的浏览器的请求转向我们的代理服务程序,代理程序转发请求给baidu服务器,并从它那儿取回数据,显示在浏览器上,结果如下: 图7 通过代理的数据请求结果 Powered by 计算机毕业论文网 重要提示: 本论文由大学论文网 毕业论文下载网: 提供 如果

文档评论(0)

大吧书屋 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档