服務器端:
import java.net.* ;
import java.io.* ;
public class EchoThread implements Runnable{
private Socket client = null ;
public EchoThread(Socket client){
this.client = client ;
}
public void run(){
BufferedReader buf = null ; // 接收輸入流
PrintStream out = null ; // 打印流輸出最方便
try{
out = new PrintStream(client.getOutputStream()) ;
// 準備接收客戶端的輸入信息
buf = new BufferedReader(new InputStreamReader(client.getInputStream())) ;
boolean flag = true ; // 標誌位,表示可以一直接收並回應信息
while(flag){
String str = buf.readLine() ; // 接收客戶端發送的內容
if(str==null||"".equals(str)){ // 表示沒有內容
flag = false ; // 退出循環
}else{
if("bye".equals(str)){ // 如果輸入的內容爲bye表示結束
flag = false ;
}else{
out.println("ECHO : " + str) ; // 迴應信息
}
}
}
client.close() ;
}catch(Exception e){}
}
};
import java.net.* ;
import java.io.* ;
public class EchoThread implements Runnable{
private Socket client = null ;
public EchoThread(Socket client){
this.client = client ;
}
public void run(){
BufferedReader buf = null ; // 接收輸入流
PrintStream out = null ; // 打印流輸出最方便
try{
out = new PrintStream(client.getOutputStream()) ;
// 準備接收客戶端的輸入信息
buf = new BufferedReader(new InputStreamReader(client.getInputStream())) ;
boolean flag = true ; // 標誌位,表示可以一直接收並回應信息
while(flag){
String str = buf.readLine() ; // 接收客戶端發送的內容
if(str==null||"".equals(str)){ // 表示沒有內容
flag = false ; // 退出循環
}else{
if("bye".equals(str)){ // 如果輸入的內容爲bye表示結束
flag = false ;
}else{
out.println("ECHO : " + str) ; // 迴應信息
}
}
}
client.close() ;
}catch(Exception e){}
}
};
客戶端:
import java.net.* ;
import java.io.* ;
public class EchoClient{
public static void main(String args[]) throws Exception { // 所有異常拋出
Socket client = null ; // 表示客 戶端
client = new Socket("localhost",8888) ;
BufferedReader buf = null ; // 一次性接收完成
PrintStream out = null ; // 發送數據
BufferedReader input = null ; // 接收鍵盤數據
input = new BufferedReader(new InputStreamReader(System.in)) ;
buf = new BufferedReader(new InputStreamReader(client.getInputStream())) ;
out = new PrintStream(client.getOutputStream()) ;
boolean flag = true ; // 定義標誌位
while(flag){
System.out.print("輸入信息:") ;
String str = input.readLine() ; // 接收鍵盤的輸入信息
out.println(str) ;
if("bye".equals(str)){
flag = false ;
}else{
String echo = buf.readLine() ; // 接收返回結果
System.out.println(echo) ; // 輸出迴應信息
}
}
buf.close() ;
client.close() ;
}
};