Java Socket接收和傳送(字串)
阿新 • • 發佈:2019-02-05
備註:必須先執行伺服器端,然後執行客戶端 1.客戶端 LoginClient.java package pb.socket.LoginStr; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException; public class LoginClient { public static void main(String[] args) { try { //1.建立客戶端socket連線,指定伺服器位置及埠 Socket socket =new Socket("localhost",8800); //2.得到socket讀寫流 OutputStream os=socket.getOutputStream(); PrintWriter pw=new PrintWriter(os); //輸入流 InputStream is=socket.getInputStream(); BufferedReader br=new BufferedReader(new InputStreamReader(is)); //3.利用流按照一定的操作,對socket進行讀寫操作 String info="使用者名稱:Tom,使用者密碼:123456"; pw.write(info); pw.flush(); socket.shutdownOutput(); //接收伺服器的相應 String reply=null; while(!((reply=br.readLine())==null)){ System.out.println("接收伺服器的資訊:"+reply); } //4.關閉資源 br.close(); is.close(); pw.close(); os.close(); socket.close(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } 2.伺服器端 LoginServer.java package pb.socket.LoginStr; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class LoginServer { public static void main(String[] args) { try { //1.建立一個伺服器Socket(ServerSocket)繫結指定埠 ServerSocket serverSocket=new ServerSocket(8800); //2.使用accept()方法阻止等待監聽,獲得新連線 Socket socket=serverSocket.accept(); //3.獲得輸入流 InputStream is=socket.getInputStream(); BufferedReader br=new BufferedReader(new InputStreamReader(is)); //獲得輸出流 OutputStream os=socket.getOutputStream(); PrintWriter pw=new PrintWriter(os); //4.讀取使用者輸入資訊 String info=null; while(!((info=br.readLine())==null)){ System.out.println("我是伺服器,使用者資訊為:"+info); } //給客戶一個響應 String reply="welcome"; pw.write(reply); pw.flush(); //5.關閉資源 pw.close(); os.close(); br.close(); is.close(); socket.close(); serverSocket.close(); } catch (IOException e) { e.printStackTrace(); } } }