现要做一个基础的WEB服务器,多线程的,用HTTP1.0做,急求。
小弟刚入门不久,求各为高手大哥帮忙。

解决方案 »

  1.   

    import j ava.io.*;
    import j ava.net.*;
    import java.util.*;
    class Webserver {
       public static void main(String argv[]) throws Exception
       {
          String requestMessageLine;
          String fileName;
          ServerSocket listenSocket = new ServerSocket(6789);
          Socket connectionSocket = listenSocket.accept();
          BufferedReader inFromClient =
             new BufferedReader(new InputStreamReader(
                    connectionSocket.get!nputStream()));
          DataOutputStream outToClient =
             new DataOutputStream(
                    connectionSocket.getOutputStream());
       requestMessageLine = inFromClient.readLine();
     
       StringTokenizer tokenizedLine = 
           new StringTokenizer(requestMessageLine);   if (tokenizedLine.nextToken().equals("GET")){       fileName = tokenizedLine.nextToken();       if (fileName.startsWith("/") == true )
                   fileName = fileName.substring(1);
      File file = new File(fileName);     int numOfBytes = (int) file.length();     FileInputStream inFile = new FileInputStream (fileName);     byte[] fileInBytes = new byte[numOfBytes];     inFile.read(fileInBytes);
     outToClient.writeBytes(
                     "HTTP/I.0 200 Document Follows\r\n");
         if (fileName.endsWith(".jpg"))
             outToClient.writeBytes("Content-Type:image/jpeg\r\n");
         if (fileName.endsWith(".gif"))
            outToClient.writeBytes("Content-Type:image/gif\r\n");
         outToClient.writeBytes("Content-Length: " + 
                   numOfBytes + "\r\n");
         outToClient.writeBytes("\r\n") ;
         outToClient.write(fileInBytes, 0, numOfBytes);
         connectionSocket.close();
         }
      else System.out.println("Bad Request Message");
      }
    }即把这个改成多线程的,请问怎么改啊????
      

  2.   

    while(true) {
       
     Socket connectionSocket = listenSocket.accept();
     new Thread( public void run(){
            
            //单个请求操作放这里
        };).start();
    }
      

  3.   

    HttpClient,或者直接用Tomcat就是了