Java socket通信Demo

服務器端:

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() ;
	}
};



發佈了34 篇原創文章 · 獲贊 20 · 訪問量 23萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章