阅读以下技术说明、Java源程序和运行测试部分,根据要求回答问题1和问题2。【说明】 1.HTTP ◆ HTTP请

10 查阅

阅读以下技术说明、Java源程序和运行测试部分,根据要求回答问题1和问题2。

【说明】

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 2003)

Host:localhost:8080

Connection:Keep-Alive

◆ HTTP响应消息示例

HTTP/1.1 200 OK

Servert:Microsoft-IIS/6.0

Date:Mon,3 Jan 2008 13:13:33 GMT

Content-Type:text/html

Last-Modified:Mon,11 Jan 2008 13:23:42 GMT

Contelit-Length:112

<html>

...

</html>

2.相关类及主要成员函数

◆ ServerSocket类

服务器端套接字,它监听固定端口,以接收来自客户端的连接请求,一旦建立连接就返回一个Socket类型的对象,类中的主要成员函数如表6-16所示。

◆Socket类 基于连接的套接字,类中的主要成员函数如表6-17所示。

【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_COMM_AND变量保存关闭服务器的命令

private Boolean shutdown=false; //是否收到关闭服务器命令的标志

public static void main(Sting[] args) {

WebServer server=new WebServer();

Server.await ()

}

public void await() {

ServerSocket serverSocket = null;

try {

serverSocket = new (1);

//创建侦听端口号为PORT的ServerSocket类型的对象

System.out.println ("WebServerStarted!");

}

catch(IOException e) {

e.printStackTrace ();

SyStem. exit (1);

}

while(!shutdown) { //循环等待客房端连接

Socket socket = null;

InputStream input = null;

OutputStream utput = null;

try{

Socket =(2); //创建来自客房端的连接套接字

Input = socket.(3); //创建输入流

utput = socket.(4); //创建输出流

Request reque

参考答案:

(1)ServerSocket(PORT)或serverSicket(PORT1InetAddress.getByName(“127.0.0.1”))(2)serverSocket.accept()或其等价的带参数形式(3)getInputStream()或其等价的带参数形式(4)getOutputStream()或其等价的带参数形式(5)parse()或其等价的带参数形式(6)sendStaticResource()或其等价的带参数形式(7)socket.close()(8)getUrl()(1)Ser

软考初级