如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
Server.java:importjava.io.IOException;importjava.net.ServerSocket;publicclassServer{privateServerSocketserverSocket_3614;privatestaticStringpath_3614="c:/www";privatestaticfinalintSERVER_PORT_3614=200;intclientNum_3614=1;publicstaticvoidmain(String[]args){Serverserver_3614=newServer();server_3614.startServer();}privateServer(){try{serverSocket_3614=newServerSocket(SERVER_PORT_3614);}catch(Exceptione){System.err.println("无法启动服务器:"+e.getLocalizedMessage());}System.out.println("服务器已经运行在"+SERVER_PORT_3614+"端口");}publicvoidstartServer(){while(true){try{//建立多线程服务器ThreadedServerthreadedServer=newThreadedServer(serverSocket_3614.accept(),(clientNum_3614++),path_3614);System.out.println("线程ID"+threadedServer.getId()+"第"+threadedServer.clientNum_3614+++"个客户");threadedServer.start();try{ThreadedServer.sleep(5000);}catch(InterruptedExceptione){System.err.println(e);}}catch(IOExceptione){System.out.println(e);}}}}ThreadedServer.java:importjava.io.BufferedReader;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.PrintStream;importjava.io.PrintWriter;importjava.net.Socket;importjava.util.Date;importjava.util.StringTokenizer;publicclassThreadedServerextendsThreadimplementsRunnable{SocketclientSocket_3614;publicintclientNum_3614;Stringpath_3614="c:\\www";publicThreadedServer(Socketaccept,inti,Stringpath){this.clientSocket_3614=accept;this.clientNum_3614=i;this.path_3614=path;}publicvoidrun(){try{System.out.println("连接到服务器上的用户:"+clientSocket_3614);BufferedReaderin_3614=newBufferedReader(newInputStreamReader(clientSocket_3614.getInputStream()));//读取请求报文的第一行,获取方法和urlStringline_3614;if((line_3614=in_3614.readLine())!=null){System.out.println("客户端发送的请求报文:"+line_3614);