1. 程式人生 > >第八講 java網路程式設計

第八講 java網路程式設計

  import java.io.*;
  import java.net.*;
  public class ServerThread extends Thread{
   Socket socket=null; //儲存與本執行緒相關的Socket物件
   int clientnum; //儲存本程序的客戶計數
   public ServerThread(Socket socket,int num) { //建構函式
    this.socket=socket; //初始化socket變數
    clientnum=num+1; //初始化clientnum變數
   }
   public void run() { //執行緒主體
    try{
      String line;
      BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));
  //由Socket物件得到輸入流,並構造相應的BufferedReader物件
      PrintWriter os=newPrintWriter(socket.getOutputStream());
      //由Socket物件得到輸出流,並構造PrintWriter物件
      BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));
      //由系統標準輸入裝置構造BufferedReader物件
      System.out.println("Client:"+ clientnum +is.readLine());
      //在標準輸出上列印從客戶端讀入的字串
      line=sin.readLine();
      //從標準輸入讀入一字串
      while(!line.equals("bye")){
      //如果該字串為 "bye",則停止迴圈
        os.println(line);
        //向客戶端輸出該字串
        os.flush();
        //重新整理輸出流,使Client馬上收到該字串
        System.out.println("Server:"+line);
        //在系統標準輸出上列印該字串
        System.out.println("Client:"+ clientnum +is.readLine());
        //從Client讀入一字串,並列印到標準輸出上
        line=sin.readLine();
        //從系統標準輸入讀入一字串
      } //繼續迴圈
      os.close(); //關閉Socket輸出流
      is.close(); //關閉Socket輸入流
      socket.close(); //關閉Socket
      server.close(); //關閉ServerSocket
     }catch(Exception e){
      System.out.println("Error:"+e);
      //出錯,打印出錯資訊
     }
   }
 }