用 socket 通訊寫出客戶端和伺服器端的通訊 , 要求客戶傳送資料後能夠回顯相同的資料
阿新 • • 發佈:2019-02-19
比較基礎的一個服務端客戶端互相通訊的程式
/** * @author john socket 的伺服器端,接收到資料後列印到控制檯 的資料 * */ public class ServiceSocket_1 { public static void main(String[] args) throws Exception { ServerSocket ss = new ServerSocket(4001); Socket s = ss.accept(); BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream())); PrintStream ps = new PrintStream(s.getOutputStream()); String temp = br.readLine(); while (true) { System.out.println("客戶端:" + temp); ps.println(temp);//獲取temp中的字元流併發送給客戶端 if (temp.equals("stop")) { break; } temp = br.readLine(); } br.close(); ps.close(); ss.close(); } }
/** * @author john socket 客戶端和伺服器端通訊,客戶端傳送資料後接收從服務端發來的資料 * */ public class ClientSocket { public static void main(String[] args) throws Exception { Socket s = new Socket("localhost", 4001); PrintStream ps = new PrintStream(s.getOutputStream()); //br獲取的是控制檯輸入的字元流 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //br_service獲取的是socket中從服務端傳送過來的字元流 BufferedReader br_server = new BufferedReader(new InputStreamReader(s.getInputStream())); String temp = br.readLine(); while (true) { ps.println(temp);//獲取temp中的字元流併發送到服務端 temp = br_server.readLine(); System.out.println("伺服器的資訊:" + temp); if (temp.equals("stop")) { break; } temp = br.readLine(); } s.close(); br.close(); br_server.close(); } }