方法及预期目的:
1、 拟采用的研究方法(手段)
使用VC++6.0软件,利用MFC编程和Winsock网络编程来设计实现一个简单的HTTP服务器。
2、 本课题要研究或解决的问题及预期目的
问题描述
要设计出这个软件,首先必须对网络架构要有一个全面的认识,知道自己设计的东西是基于哪个层的协议,从而可以有目的的去了解这个协议的具体内容,有了理论基础之后,还必须对开发工具要熟悉,以及用什么样的编程方法,通过翻阅书籍,我决定用vc开发工具利用Winsock网络编程方法来实现这个程序。
预期目的
该软件要有友好的用户界面,能够得到从浏览器中发出的请求信息, 通过服务 器端程序分析和处理此信息,最后向浏览器发出响应信息。
要求服务器端有能够获得请求,分析请求,和处理请求的能力
要求能够的到具体一个文件的内容数据。
要求能够获得某个文件夹下的所有文件的基本信息。
3、 进度表
1月10日-2月10日 学习阶段、收到任务书,对任务进行详细分析,进行项目计划安排。
2月10日-3月20日 学习相关的书籍,对使用的语言工具和参考书籍进行阅读。
3月21日-5月30日 根据知识编写出程序。
4月30日-6月10日 完成毕业论文的编写。
1 引言 1
1.1 HTTP服务在Internet中的应用 1
1.1.1 HTTP 服务器的作用 1
1.1.2 HTTP 服务器的工作模式 1
1.2 本课题的研究背景 2
1.3 论文内容组织 3
2 理论基础及相关协议 4
2.1 计算机网络的基本概念 4
2.1.1 计算机网络的概念 4
2.1.2 网络体系结构中的层次概念 4
2.1.3 理解服务模式 6
2.2 TCP/IP 协议族 6
2.2.1 TCP/IP 简介 6
2.2.2 TCP/IP 的网络分层结构 7
2.3 HTTP 协议及工作原理 8
2.3.1 HTTP协议的主要特点 8
2.3.2 HTTP的信息传输方式 8
2.3.3 HTTP的消息结构 9
2.3.4 典型HTTP 服务器的工作流程 15
2.4 Winsock 编程原理 15
2.5 小结 17
3 HTTP 服务器基本体系结构 19
3.1 重复型服务器 19
3.2 并发型服务器 19
4 多线程HTTP服务器的实现 21
4.1 MFC编程简介 21
4.2 界面设计 21
4.3 全局变量 23
4.4 套接字模块的实现 23
4.5 读取请求的实现 23
4.7 套接字地址初始化的实现 24
4.8 创建一个工作线程 25
4.9 对各按钮事件的处理 27
5 程序的运行与调试 29
5.1 操作与运行 29
5.2 程序中未实现的部分 31
6 结论 32
致谢 33
参考文献 34
附录 35
附录A:外文翻译-原文部分 35
附录B:外文翻译-译文部分 39