1. 程式人生 > >網路程式設計練習字串反轉

網路程式設計練習字串反轉

客戶端向伺服器寫字串(鍵盤錄入),

伺服器(多執行緒)將字串反轉後寫回,

客戶端再次讀取到是反轉後的字串

服務端
public class str_server {

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		ServerSocket server = new ServerSocket(54321);
		System.out.println("伺服器啟動,繫結54321埠");
		
		while(true) {
			final Socket socket = server.accept();	//接受客戶端的請求
			
			new Thread() {					//開啟一條執行緒
				public void run() {
					try {
						BufferedReader br = new BufferedReader(
								new InputStreamReader(socket.getInputStream()));//獲取輸入流
						PrintStream ps = new PrintStream(socket.getOutputStream());//獲取輸出流
						
						String line = br.readLine();		//將客戶端寫過來的資料讀取出來
						line = new StringBuilder(line).reverse().toString();//鏈式程式設計
						ps.println(line);					//反轉後寫回去
						
						socket.close();
					} catch (IOException e) {						
			
						e.printStackTrace();
					}
				}
			}.start();
		}
	}

}
客戶端
public class str_client {

	/**
	 * @throws IOException 
	 * @throws UnknownHostException 
	 */
	public static void main(String[] args) throws UnknownHostException, IOException {
		Scanner sc = new Scanner(System.in);	//建立鍵盤錄入物件
		Socket socket = new Socket("127.0.0.1", 54321);	//建立客戶端,指定ip地址和埠號
		
		BufferedReader br = new BufferedReader(
				new InputStreamReader(socket.getInputStream()));//獲取輸入流
		PrintStream ps = new PrintStream(socket.getOutputStream());//獲取輸出流
		
		ps.println(sc.nextLine());	//將字串寫到伺服器去
		System.out.println(br.readLine()); //將反轉後的結果讀出來
		
		socket.close();
	}

}