Java Socket實現客戶端與服務端通訊例項
阿新 • • 發佈:2019-01-03
首先,建立一個Server.java的伺服器端類
package socket; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; /** * Created by ljb on 2018-06-10. */ public class Server { public static void main(String[] args){ BufferedReader br = null;PrintWriter pw = null; try{ ServerSocket server = new ServerSocket(2000); Socket socket = server.accept(); //獲取輸入流 br = new BufferedReader(new InputStreamReader(socket.getInputStream())); //獲取輸出流 pw = new PrintWriter(socket.getOutputStream(),true); //獲取接收到的資料 String s = br.readLine(); pw.println(s);//列印獲取到的資料 System.out.println(s); }catch (Exception e){ e.printStackTrace(); }finally { try{ br.close(); pw.close(); }catch (Exception e){ } } } }
然後建立客戶端類 Client.java
package socket; import java.io.BufferedReader; import java.io.InputStreamReader;import java.io.PrintWriter; import java.net.Socket; /** * Created by ljb on 2018-06-10. */ public class Client { public static void main(String[] args){ BufferedReader br = null; PrintWriter pw = null; try{ Socket socket = new Socket("localhost",2000); //獲取輸入流與輸出流 br = new BufferedReader(new InputStreamReader(socket.getInputStream())); pw = new PrintWriter(socket.getOutputStream(),true); //向伺服器傳送資料 pw.println("hello,world"); String s = null; while (true){ s = br.readLine(); if(s != null){ break; } } System.out.println(s); }catch (Exception e){ e.printStackTrace(); }finally { try{ br.close(); pw.close(); }catch (Exception e){ } } } }
然後先執行服務端類Server.java,然後再執行Client.java
服務端會收到客戶端傳到的 hello,world 打印出來後,並轉發給客戶端,客戶端也會打印出來