網路程式設計練習字串反轉
阿新 • • 發佈:2019-01-03
客戶端向伺服器寫字串(鍵盤錄入),
伺服器(多執行緒)將字串反轉後寫回,
客戶端再次讀取到是反轉後的字串
服務端客戶端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(); } }