教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 资格考试 >

简单Web服务器设计与实现课程设计(3)

来源:网络收集 时间:2026-01-30
导读: TCP/IP:基于连接的协议 优点:由于是有连接的传输,对于数据的准确性是有保证的。 缺点:系统资源占用较多。 UDP/IP:无连接的协议(数据报) 优点:系统资源占用少。 缺点:无法保证传输的准确性。 用途: a.对于数

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字,全部文档内容请下载后查看。喜欢就下载吧 ……

简单Web服务器设计与实现课程设计(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/96978.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)