试题五(15分,每空1.5分)
阅读以下说明、Java源程序和运行测试部分,将应填入__ (n)__处的解答写在答题纸的对应栏中。程序运行效果如图5所示。
[说明]
1.HTTP协议
◆ HTTP请求消息示例
GET/index,htmlHTTP/1.1
Accept:image/gif,image/jpeg,*/*
Accept-Language:zh-ch
Accept-encoding:gzip,deflate
User-Agent:Mozilla/4.0(compatible;MSIE6.0;Windows NT5.1)
Host:localhost:8080
Connection:Keep-Alive
◆ HTTP响应消息示例
HTTP/1.1 200 OK
Servert:Microsoft-IIS/4.0
Date:Mon,3 Jan 1998 13:13:33 GMT
Content-Type:text/html
Last-Modified:Mon,11 Jan l998 13:23:42 GMT
Contelit-Length:112
<html>
...
</html>
2.相关类及主要成员函数
◆ ServerSocket类
服务器端套接字,它监听固定端口,以接收来自客户端的连接请求,一旦建立连接就返回一个Socket类型的对象。类中的主要成员函数有:
函数名 |
功能说明 |
ScrvcrSocket(PORT) |
构造函数 |
accept() |
返回建立连接的Sockct类型的对象 |
close() |
关闭当前的SerrorSocket类型的对象 |
◆ Socket类
基于连接的套接字。类中的主要成员函数有:
函数名 |
功能说明 |
getnetAddress() |
返回InetAddress类型的对象,该对象封装了与该套接字所关联的客户机的IP地址 |
gctInputSffeam() |
返回当前对象所关联的输入流 |
gctouputStream() |
返回当前对象所关联的输出流 |
close() |
关闭当前对象 |
[java源程序;一个简单的Web服务器]
/************************************************************/
/* WebScrvc.java */
/************************************************************/
packageobjclass;
import java.net.*;
import java.io.*;
public class WebServer{
public static final int PORT=8080; //Web服务器侦听的端口号
public static final String WEB_ROOT=
SyStem.getProperty(”user.dir")+File.separator+"webroot";
//WEB—ROOT变量存放Web服务器工作目录,该目录存放HTML、GIF图片等静态文件资源
private static final String SHUTDOWN_COMMAND="/shutdown";
//SHUTDOWN_COMMAND变量保存关闭服务器的命令
private boolean shutdown=false; //是否收到关闭服务器命令的标志
public static void main(Sting[] args){
WebServerserver;newWebServer();
Server.await();
}
public void await(){
ServerSocke serverSocke = null;
try {
serverSocket = new __(1)__ ; //创建侦听端口号为PORT的ServerSocket类型的对象
System.out.println("WebServerStarted!");
}
catch(I0Exception e){
e.printStackTrace();
SyStem.exit(1);
}
while(!shutdown){ //循环等待客户端连接
Socket socket = null;
InputStrean input = null;
OutputStream output = null;
try{
Socket =__(2)__; //创建来自客户端的连接套接宇
input = socket.__(3)__; //创建输入流
Output = socket.__(4)__; //创建输出流
Request request = new Request(input); //创建request对象
request.__(5)__; //解析客户端HTTP请求
Response response = new ReSponse(output); //创建Response对象
response.setRequest(request); //将request对象传递给response对象
response.__(6)__; //给客户端发送所请求的静态资源
__(7)__ ; //关闭连接套接字
shutdown = request.__(8)__.equals(SHUTDOWN_COMMAND);
//判断当前HTTP请求中的URI是否是关闭服务器命令
}
Catch(Exception e){
e.printStackTrace();
condnue;
}
}
}
}
/*****************************************************************/
/* Request.java */
/*****************************************************************/
package objclass;
import java.io.InputSffeam;
imporrjava.iO.IOEexception;
public Cla3SRequest{
private InputStream input;
private String uri;
public Request(InputStream input){this.input = input;}
public void parse()[… parseUri(); …) //解析客户端HTTP请求消息
private String parseUri(String requestString){…} //解析客户端HTTP请求中的URl
public String getUri(){return uri;}
}
/*************************************************************/
/* Responseiava */
/*************************************************************/
package objclass;
importjava.io.*;
public class Response{
private static final int BUFFER_ SIZE=1024;
Request request;
OutputStream output;
public Response(Output Strearn output){this.output=output;}
public void setRequest(Requestrequest){this.request=request;}
public void sendStaficResoufce()throwslOException{…} //向客户端发送所请求的静态资源
}
[运行测试]
在本机运行WebServer程序,然后打开IE浏览器。
1.在IE地址栏中,输入请求"/index.html"页面的命令:__(9)__;
2.在1E地址栏中,输入关闭Web服务器的命令:__(10)__。
答案
试题一
[问题1] GPRS和CDMA。
[问题2] WCDMA、CDMA2000和TD-SCDMA
[问题3] 进行一次查询操作,采用移动电话时的费用为(1280+6400)×0.0003/128=0.018元,PDA费用为90/60×0.2/3=0.1元,故由(35-25)/(0.1-0.018)=121.9512,最少次数为122(次)。
[问题4] DMZ中放置邮件服务器、应用网关、电子商务系统。内网中放置机密数据服务器、私人信息PC和放置资源代码的PC。DMZ是放置公共信息的最佳位置,用户、潜在用户和外部访问者不用通过内网就可以直接获得他们所需要的关于公司的一些信息。公司中机密的、私人的信息可以安全地存放入内网中,即DMZ的后面。DMZ中服务器不应包含任何商业机密、资源代码或是私人信息。
试题二
[问题1] 在应用服务器关机的情况下,告诉员工仍能上Intemet。员工:的PC机通过hub,经由路由器的ISDN接口连接ISDN,最后到达ISP。
[问题2] 不需要加入TA。当非ISDN终端用户连接到ISDN设备时才需要加入TA。
[问题3]
(1) 计算机交换分机PBX(NT2)。
(2) 网络终端设备(NT1)。
[问题4] 1875*1024*8/128000=120秒
试题三
[问题1]在静态实现方式中,网络管理员将交换机端口静态地分配给某一个VLAN,这是经常使用的一种配置方式,容易实现和监视,比较安全。在动态实现方式中,管理员必须先建立一个较复杂的数据库,例如输入要连接的网络设备的MAC地址及相应的VLAN号,这样,当网络设备接到交换机端口时,交换机自动把这个网络设备所连接的端口分配给相应的VLAN。动态VLAN的配置可以基于网络设备的MAC地址、IP.地址、应用的协议来实现。动态VLAN一般通过管理软件来进行管理。Switch1采用静态实现方式。
[问题2] STP(SpanningTreeProtocol,生成树协议)是一个既能够防止环路、又能够提供冗余线路的第二层的管理协议。为了使交换网络正常运行,STP网络上的任何两个终端之间只有一条有效路径。STP使用生成树算法求解没有环路的最佳路径,使一些备用路径处于阻塞状态。大型交换网络中尤其是有多个VLAN的时候,配置STP很重要。
VTP(VLAN TrunkProtocol,VLAN中继协议)保持VLAN的删除、添加、修改等管理操作的一致性。在同一个VTP域内,VTP通过中继端口在交换机之间传送VTP信息,从而使一个VTP域内的交换机能共享VLAN信息。
[问题3]
(1) Server3+Computer2+Computer5
(2) Server2+Computer3+Computer6
(3) Serverl+Computerl+Computer4
试题四
(1) 路由器名为router1
(2) 特权密码为pwdl2345
(3) 在端口配置中封装帧中继,帧中继数据包封装格式为IETF
(4) 带宽为2M
(5) 映射IP地址与帧中继地址。对方路由器的IP地址为192.3.1.2,本端口的帧中继号码为100,并且允许在帧中继线路上传送路由广播信息。
(6) 指定使用OSPF协议,路由进程id为1。
(7) 指定与该路由器相连的网络IP为192.1.1.0,子网隐码的反码为0.0.0.255(或子网掩码为255.255.255.0),网络区域ID为0。
(8) 指定与该路由器相邻的节点地址为192.1.1.2。
试题五
(1) ServerSocket(PORT)或ServerSocket(PORT,1,InetAddress.getByName(“127.0.0.1”))
(2) serverSocket.accept()
(3) getlnputStream()
(4) getOutputStream()
(5) parse()
(6) sendStaticResource()
(7) socket.close()
(8) getUri()
(9) http://localhost:8080/index.html或http://127.0.0.1:8080/index.html
(10)http://!ocalhost:8080/shutdown或http://127.0.0.1:8080/Shutdown