Java示例多线程Server2 Java示例多线程Server1 Java示例获取文件大小1 Java示例多线程Server2 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.text.SimpleDateFormat; import java.util.Calendar; public class NewClass { ServerSocket myServerSocket; boolean ServerOn = true; public NewClass() { try { myServerSocket = new ServerSocket(8888); } catch(IOException ioe) { System.out.println("Could not create server socket on port 8888. Quitting."); System.exit(-1); } Calendar now = Calendar.getInstance(); SimpleDateFormat formatter = new SimpleDateFormat( "E yyyy.MM.dd 'at' hh:mm:ss a zzz"); System.out.println("It is now : " + formatter.format(now.getTime())); while(ServerOn) { try { Socket clientSocket = myServerSocket.accept(); ClientServiceThread cliThread = new ClientServiceThread(clientSocket); cliThread.start(); } catch(IOException ioe) { System.out.println("Exception found on accept. Ignoring. Stack Trace :"); ioe.printStackTrace(); } } try { myServerSocket.close(); System.out.println("Server Stopped"); } catch(Exception ioe) { System.out.println("Error Found stopping server socket"); System.exit(-1); } } public static void main (String[] args) { new NewClass(); } class ClientServiceThread extends Thread { Socket myClientSocket; boolean m_bRunThread = true; public ClientServiceThread() { super(); } ClientServiceThread(Socket s) { myClientSocket = s; } public void run() { BufferedReader in = null; PrintWriter out = null; System.out.println( "Accepted Client Address - " + myClientSocket.getInetAddress().getHostName()); try { in = new BufferedReader( new InputStreamReader(myClientSocket.getInputStream())); out = new PrintWriter( new OutputStreamWriter(myClientSocket.getOutputStream())); while(m_bRunThread) { String clientCommand = in.readLine(); System.out.println("Client Says :" + clientCommand); if(!ServerOn) { System.out.print("Server has already stopped"); out.println("Server has already stopped"); out.flush(); m_bRunThread = false; } if(clientCommand.equalsIgnoreCase("quit")) { m_bRunThread = false; System.out.print("Stopping client thread for client : "); } else if(clientCommand.equalsIgnoreCase("end")) { m_bRunThread = false; System.out.print("Stopping client thread for client : "); ServerOn = false; } else { out.println("Server Says : " + clientCommand); out.flush(); } } } catch(Exception e) { e.printStackTrace(); } finally { try { in.close(); out.close(); myClientSocket.close(); System.out.println("...Stopped"); } catch(IOException ioe) { ioe.printStackTrace(); } } } } } Java示例多线程Server1 Java示例获取文件大小1