阅读以下说明、Java源程序和运行测试部分 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 1998 13:23:42 GMT Contelit-Length: 112 <html> … </html> 2.相关类及主要成员函数。 SewerSocket类: 服务器端套接字,它监听固定端口,以接收来自客户端的连接请求,一旦建立连接就返回一个Socket类型的对象。类中的主要成员函数如表1-4所示。 基于连接的套接字。类中的主要成员函数如表1-5所示。 【Java源程序;一个简单的Web服务器】 /**********************************************/ /* WebScrvc.java */ /**********************************************/ packageobjclass; import java.net. *; import java.io. *; public class WebServer{ //Web服务器侦听的端口号 public static final int PORT=8080; //WEB—ROOT变量存放Web服务器工作目录,该目录存放HTML、GIF图片等静态文件资源 public static final String WEB_ROOT= System.getProperty('user.dir')+File.separator+'webroot'; //SHUTDOWN_COMMAND变量保存关闭服务器的命令 private static final String SHUTDOWN_COMMAND='/shutdown'; //是否收到关闭服务器命令的标志 private boolean shutdown=false; public static void main(Sting [] args) { WebServerserver; newWebServer( ); Server.await( ); } public void await() { ServerSocke serversocke=null; try{ //创建侦听端口号为PORT的ServerSocket类型的对象 ServerSocket=new (1) ; 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对象 Request request=new Request(input); //解析客户端HTTP请求 request. (5) ; //创建Response对象 Response response=new Response(output);