第八講 java網路程式設計
阿新 • • 發佈:2019-01-10
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);
//出錯,打印出錯資訊
}
}
}
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);
//出錯,打印出錯資訊
}
}
}