基于Socket的HTTP的请求监听程序的设计.doc

上传人:博****1 文档编号:558095535 上传时间:2022-11-04 格式:DOC 页数:26 大小:957KB
返回 下载 相关 举报
基于Socket的HTTP的请求监听程序的设计.doc_第1页
第1页 / 共26页
基于Socket的HTTP的请求监听程序的设计.doc_第2页
第2页 / 共26页
基于Socket的HTTP的请求监听程序的设计.doc_第3页
第3页 / 共26页
基于Socket的HTTP的请求监听程序的设计.doc_第4页
第4页 / 共26页
基于Socket的HTTP的请求监听程序的设计.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《基于Socket的HTTP的请求监听程序的设计.doc》由会员分享,可在线阅读,更多相关《基于Socket的HTTP的请求监听程序的设计.doc(26页珍藏版)》请在金锄头文库上搜索。

1、 简单应用系统学年设计 任务书 学 院计算机与信息工程学院专 业网络工程课程名称简单应用系统题 目基于Socket的HTTP请求监听程序的设计实现完成期限自2015年7月9日 至2015年8月30日 共8周内容及任务一、项目的目的 用java编写一个监听程序,监听指定的端口,通过浏览器如http:/localhost:7777来访问时,可以把请求到的内容记录下来,记录可以存文件,sqlit,mysql数据库,然后把接受到的信息在浏览器中显示出来二、项目任务的主要内容和要求监听指定的端口,通过浏览器如http:/localhost:7777来访问时,可以把请求到的内容记录下来,记录可以存文件,s

2、qlit,mysql数据库,然后把接受到的信息在浏览器中显示出来。实现本程序需要了解网络基础知识、网络安全基础知识,掌握C/S结构的工作特点,掌握高级语言及网络编程知识,可以选择Visual C+、C或Java等语言实现。三、项目设计(研究)思路1.用到的主要技术: Socket,线程,数据库,IO操作 2.设计思路: 我们如何来设计这个小系统,这个系统包含三部分的内容,一个是监听端口,二是记录日志,三是数据回显,端口监听第一想到的就是Socket编程了,数据回显也是一样的,无非是把当前请求客户端的socket获取到,然后把消息通过流输出出去,日志的记录因为是要多种实现策略,这里我们使用了一个

3、观察者模式来实现,服务器可以添加任意多个观察着,因此有着很灵活的扩展性,在实例程序中我们分别提供了ConsoleRecordHandler-直接把获取到的信息打印到控制台,和存放数据库的方式-MysqlRecordHandler,当然你也可以分别提供基于文件的实现。首先来看我们系统的类图四、具体成果形式和要求学年设计说明书和相关程序;进度安排起止日期工作内容7.9分析课题,寻找相关资料。8.25-8.27学习相关知识,打下基础。8.288.30设计解决方案并调试。主要参考资料1Windows防火墙与网络封包截获技术 朱雁辉 编著 电子工业出版社2监听与隐藏 求实科技 谭思亮 编著 人民邮电出版

4、社3计算机网络安全基础 袁津生 吴砚农 编著 人民邮电出版社4Visual C+ 6.0 技术内幕 美David J.Kruglinski, Scot Wingo ,George Shepherd编著 希望图书创作室 译 北京希望电子出版社指导教师意见(签字): 年 月 日系(教研室)主任意见(签字): 年 月 日 简单应用系统学年 设计说明书(或论文)(封面)学院名称: 计算机与信息工程学院 班级名称: 网络工程1班 学生姓名: 学 号: 题 目: 基于Socket的HTTP请求监听程序的设计实现 指导教师姓 名: 陈海宝 起止日期: 2015.7.92015.8.30 目录1.选题背景12

5、.设计理念1 2.1.课题要求1 2.2课题分析22.3课题解决方案23. 过程论述23.1概要设计23.2启动MySQL,创建数据库和表74.结果分析134.1测试结果135.总结19附录20致谢28第一部分:正文部分一、选题背景随着计算机的发展,越来越多的技术体现在现有的网络布局当中,并且起到了引领计算机科技领域的作用。为了让学生了解基本网络构建的相关知识,理解客户机,服务器的运行原理,因而选用了基于Socket的HTTP的请求监听程序的设计这一课题来让学生自主的去理解这些网络知识。为了实现这一课题,让本地机既作为客户机,又作为服务器来使用,能够让学生深刻了解服务器是如何响应客户端的请求,

6、并且监听指定的端口的。在此同时,也能让学生掌握住一些基本的简单的设计网页的HTML语言和JSP语言的知识。二、设计理念1.课题要求监听指定的端口,通过浏览器如http:/localhost:7777来访问时,可以把请求到的内容记录下来,记录可以存文件,sqlit,mysql数据库,然后把接受到的信息在浏览器中显示出来。2.课题分析首先,监听指定端口可以采用监听服务器的端口号来实现;通过浏览器来访问并把信息在浏览器中显示出来,这个可以建立一个简单的网站,然后由本机的客户端来对服务器进行访问2,并且把访问的内容通过服务器发送给本机的客户端,也就是采用C/S模式;记录可以存文件或者是数据库这一点,可

7、以通过JDBC的方式连接数据库,然后更新里面的内容。3.课题解决方案(1)相关软件:Tomcat6.0(或6.0版本以上)、MySQL5.0数据库(其他数据库也可)。(2)设计思路:首先,安装并启动以上两个软件,在数据库中创建一个Student数据库和两张表(可以用MySQL相关的编辑软件制作表):user表,information表,在information表中加入一些数据;其次,用txt文本编写JSP文件和Tag文件(也可以下载相关的JSP文件编辑软件),在Tag文件中添加数据库连接语句;最后,用浏览器进行测试。(3)流程图如下:登录用户名是否存在开始登录成功查询所查信息是否存在显示信息结

8、束注册重建数据库信息是是否否图2-3-1 总体流程图三、过程论述3.1 概要设计httpServe类是我们的核心类,他实现了Runnable接口,因此有着更高的性能,在循环中不断的去轮询指定端口,构造方法比较简单,只需要一个要监听的端口号即可,还有两个用于触发监听和停止程序运行的方法stop()&start(),这两个方法也比较简单,只是简单的给标志位赋值即可,我们这个程序是基于Oserver模式的简化版本,HttpServer本身是一个被观察的对象(Subject),当这个Subject有变化时(获取到客户端请求时)要通知监听器(我们的RecordHandler)去作操作(写数据库还是写文件

9、或是直接控制台输出),极大增加了系统的灵活性和易测试性(1) HttpServer类代码packagecom.crazycoder2010.socket;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.PrintWriter;.ServerSocket;.Socket;importjava.sql.Date;importjava.util.ArrayList;importjava.util.List;/*服务器监听对象,对某个端口进行监听,基

10、于线程的实现*authorKevin*/publicclassHttpServerimplementsRunnable/*服务器监听*/privateServerSocketserverSocket;/*标志位,表示当前服务器是否正在运行*/privatebooleanisRunning;/*观察者*/privateListrecordHandlers=newArrayList();publicHttpServer(intport)tryserverSocket=newServerSocket(port);catch(IOExceptione)e.printStackTrace();publi

11、cvoidstop()this.isRunning=false;publicvoidstart()this.isRunning=true;newThread(this).start();Overridepublicvoidrun()while(isRunning)/一直监听,直到受到停止的命令Socketsocket=null;trysocket=serverSocket.accept();/如果没有请求,会一直hold在这里等待,有客户端请求的时候才会继续往下执行/logBufferedReaderbufferedReader=newBufferedReader(newInputStream

12、Reader(socket.getInputStream();/获取输入流(请求)StringBuilderstringBuilder=newStringBuilder();Stringline=null;while(line=bufferedReader.readLine()!=null&!line.equals()/得到请求的内容,注意这里作两个判断非空和都要,只判断null会有问题stringBuilder.append(line).append(/n);Recordrecord=newRecord();record.setRecord(stringBuilder.toString();record.setVisitDate(newDate(System.cur

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 商业合同/协议

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号