简单Web服务器设计与实现课程设计(3)
TCP/IP:基于连接的协议
优点:由于是有连接的传输,对于数据的准确性是有保证的。
缺点:系统资源占用较多。
UDP/IP:无连接的协议(数据报)
优点:系统资源占用少。
缺点:无法保证传输的准确性。
用途:
a.对于数据少量丢失可以接受的应用。
b.存在足够数据冗余的应用。
2)B/S网络架构
浏览器/服务器架构,在服务器端完成几乎所有的功能(包括数据存储),客户端的浏览器只完成和服务器交互和显示服务器传输的信息的功能。
常用的传输协议包括:
http:超文本传输协议。
计算机网络课设报告,java平台实现,Java;HTTP;Web服务器
优点:客户端不需要安装任何附加软件,同时整个应用的升级也相对简单。
IP:通过IP Address和Port(端口)定位具体的应用;Port的有效范围是0~65535,通常在开发应用时应避免使用1000以下的端口,1000以下有很多端口被常用应用占用。IP Address在JDK5.0中支持4位或6位两种方式,现在4位的占据主导地位,但将来会逐渐过渡到6位IP地址的模式。
TCP/IP协议的实现:
a.ServerSocket类:服务器端使用,用于监听客户端的请求。
b.Socket类:服务器端和客户端使用,用于完成具体通信的所有功能。
UDP/IP协议的实现:
a.DatagramSocket类:服务器端和客户端使用,用于实现通信的基本功能。
b.DatagramPacket类:服务器端和客户端使用,用于封装通信的内容信息。
3 开发环境及套字接编程
3.1 Web服务器的开发环境
该课程设计是基于Java编程语言的设计的Web服务器,开发环境是Eclipse软件和Java Swing。
(1)Eclipse简介
Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件和组件构建开发环境。Eclipse 附带了一个标准的插件集,包括 Java 开发工具。Eclipse采用的技术是IBM公司开发的(SWT),这是一种基于Java的窗口组件,类似Java本身提供的AWT和Swing窗口组件,Eclipse的插件机制是轻型软件组件化架构。在富客户机平台上,Eclipse使用插件来提供所有的附加功能[4]。
(2)Java Swing概述
Swing是不对等基于GUI工具箱的正式名字,它是Java基础类库的一部分。完整的JFC十分庞大,其中包含的内容远远大于Swing GUI工具箱。JFC特性不仅仅包含了Swing组件,而且还包含了一个可访问的API、一个2D API和一个可拖拽的API。Swing拥有一个丰富、便捷的用户界面元素集合,对底层平台依赖的很少,因此与平台
计算机网络课设报告,java平台实现,Java;HTTP;Web服务器
3.2 Web服务器的套接字编程
Java提供了一个 ServerSocket类,程序员可以很方便地用它编写服务器程序。服务器套接字的基本功能类似于坐在电话机旁边等待呼叫到来。从技术上讲, ServerSocket运行在服务器上并监听到来的 TCP连接。
每个ServerSocket都在服务器上的指定端口监听。当远程主机上的客户Socket试图与指定端口建立连接时,服务器被激活,判定客户程序与服务器的连接,并打开两个主机之间固有的Socket。一旦与服务器套接字建立了连接,则服务器就可以使用固有的Socket对象向客户机发送数据。数据总是通过固有的套接字传递。
3.2.1 ServerSocket类
ServerSocket类包含了用 Java编写服务器程序的所有内容。它包括创建新 ServerSocket对象的构造器、在指定端口监听连接的方法,以及连接建立后可以发送和接收数据时返回 Socket对象的方法。此外,它还有设置不同选项以及各种各样常用的方法,例如 toString()方法。
服务器的基本生命期是:
1. 利用 ServerSocket()构造器在指定端口创建一个新的 ServerSocket;
2. ServerSocket利用它的accept()方法在指定端口监听到来的连接。accept()方法一直处于阻塞状态,直到有客户机试图建立连接。这时 accept()方法返回连接客户机何服务器的 Socket;
3. 调用 getInputStream()方法、getOutputStream()方法或者两者都调用来得到与客户机通信的输入流和输出流,具体调用哪一个方法还是两者都调用与具体服务器的类型有关;
4. 服务器和客户机根据双方都承认的协议进行交互,直到关闭连接时为止;
5. 服务器、客户机或两者均关闭连接;
6. 服务器返回步骤 2,等待下一个连接到来。如果在4步花费的时间很长或时间无限期,则wu-ftpd这样的传统Unix服务器会创建一个新的进程来处理每个连接,从而使服务器在同一时刻可以为多个客户机提供服务。
计算机网络课设报告,java平台实现,Java;HTTP;Web服务器
4 WEB服务器的设计与实现
4.1 Web服务器的程序设计流程
根据上述HTTP协议的作用原理,实现GET请求的Web服务器程序的方法如下:
(1) 创建ServerSocket类对象,监听端口8080。这是为了区别于HTTP的标准TCP/IP端口80而取的;
(2) 等待、接受客户机连接到端口8080,得到与客户机连接的socket;
(3) 创建与socket字相关联的输入流instream和输出流outstream;
(4) 从与socket关联的输入流instream中读取一行客户机提交的请求信息,请求信息的格式为:GET 路径/文件名 HTTP/1.0
(5) 从请求信息中获取请求类型。如果请求类型是GET,则从请求信息中获取所访问的HTML文件名。没有HTML文件名时,则以index.html作为文件名;
(6) 如果HTML文件存在,则打开HTML文件,把HTTP头信息和HTML文件内容通过socket传回给Web浏览器,然后关闭文件。否则发送错误信息给Web浏览器;
(7) 关闭与相应Web浏览器连接的socket字。
可以总结出Web服务器的设计流程并作出其设计流程图,如图4-1所示。
图4-1 Web服务器的程序设计流程
计算机网络课设报告,java平台实现,Java;HTTP;Web服务器
4.2 用Java实现Web服务器的主要设计步骤及程序
1.点击开始,打开eclipse软件,在左框内建立Java工程,在工程中分别建立相应的包和类,如图3-2所示。
图4-2在工程中分别建立相应的包和类
2. 设计主函数程序
在Java工程中建立包webserver和类HttpServer、Request、Response,在对应框中输入以下程序代码:
-------------------------HttpServer.java------------------------------- package webserver;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Properties;
import java.io.IOException;
import java.util.Enumeration;
import .ServerSocket;
import .Socket;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintStream;
public class HttpServer
{
private int iPort = 8080; //default port
public static String Basic_Root=System.getProperty("user.dir");
public static String WEB_ROOT = System.getProperty("user.dir") +
File.separator + "webroot";
public static int count=0;
public HttpServer()
{
System.out.println("欢迎使用Web服务器,本服务 …… 此处隐藏:3416字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [资格考试]石油钻采专业设备项目可行性研究报告编
- [资格考试]2012-2013学年度第二学期麻风病防治知
- [资格考试]道路勘测设计 绪论
- [资格考试]控烟戒烟知识培训资料
- [资格考试]建设工程安全生产管理(三类人员安全员
- [资格考试]photoshop制作茶叶包装盒步骤平面效果
- [资格考试]授课进度计划表封面(09-10下施工)
- [资格考试]麦肯锡卓越工作方法读后感
- [资格考试]2007年广西区农村信用社招聘考试试题
- [资格考试]软件实施工程师笔试题
- [资格考试]2014年初三数学复习专练第一章 数与式(
- [资格考试]中国糯玉米汁饮料市场发展概况及投资战
- [资格考试]塑钢门窗安装((专项方案)15)
- [资格考试]初中数学答题卡模板2
- [资格考试]2015-2020年中国效率手册行业市场调查
- [资格考试]华北电力大学学习实践活动领导小组办公
- [资格考试]溃疡性结肠炎研究的新进展
- [资格考试]人教版高中语文1—5册(必修)背诵篇目名
- [资格考试]ISO9001-2018质量管理体系最新版标准
- [资格考试]论文之希尔顿酒店集团进入中国的战略研
- 全国中小学生转学申请表
- 《奇迹暖暖》17-支2文学少女小满(9)公
- 2019-2020学年八年级地理下册 第六章
- 2005年高考试题——英语(天津卷)
- 无纺布耐磨测试方法及标准
- 建筑工程施工劳动力安排计划
- (目录)中国中央空调行业市场深度调研分
- 中国期货价格期限结构模型实证分析
- AutoCAD 2016基础教程第2章 AutoCAD基
- 2014-2015学年西城初三期末数学试题及
- 机械加工工艺基础(完整版)
- 归因理论在管理中的应用[1]0
- 突破瓶颈 实现医院可持续发展
- 2014年南京师范大学商学院决策学招生目
- 现浇箱梁支架预压报告
- Excel_2010函数图表入门与实战
- 人教版新课标初中数学 13.1 轴对称 (
- Visual Basic 6.0程序设计教程电子教案
- 2010北京助理工程师考试复习《建筑施工
- 国外5大医疗互联网模式分析




