阅读以下说明、Java源程序和运行测试部分1.HTTP协议。●HTTP请求消息示例:GET/index, htmlHTTP/1.1Accept: image/gif, image/jpeg,* /Accept-Language: zh-chAccept-encoding: gzip, deflateUser-Agent: Mozilla/4.0(compatible; MSIE6.0; Windows NT5.1 )Host: localhost: 8080Connection: Keep-Alive●HTTP响应消息示例:HTTP/1.1 200 OKServert: Microsoft-IIS/4.0Date:Mon,3 Jan 1998 13:13:33 GMTContent-Type: text/htmlLast-Modified:Mon,11 Jan 1998 13:23:42 GMTContelit-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);
阅读以下说明、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);