伺服器端: 1.創建ServerSocket對象,綁定監聽埠; 2.通過accept()方法監聽客戶端請求; 3.建立連接後通過輸入流讀取客戶端發送的請求信息; 4.通過輸出流向客戶端發送響應信息; 我是伺服器,客戶端說:用戶名:admin;密碼:123 客戶端: 1.創建socket對象,指明需 ...
伺服器端:
1.創建ServerSocket對象,綁定監聽埠;
2.通過accept()方法監聽客戶端請求;
3.建立連接後通過輸入流讀取客戶端發送的請求信息;
4.通過輸出流向客戶端發送響應信息;
package com.wxd.socket; import java.io.*; import java.net.ServerSocket; import java.net.Socket; /** * 基於TCP協議的Socket通信,實現用戶登錄,服務端 */ public class Server { public static void main(String[] args) { try { //服務端 //1、創建一個伺服器端Socket,即ServerSocket,指定綁定的埠,並監聽此埠 ServerSocket serverSocket =new ServerSocket(10086);//1024-65535的某個埠 //2、調用accept()方法開始監聽,等待客戶端的連接 Socket socket = serverSocket.accept(); //3、獲取輸入流,並讀取客戶端信息 InputStream is = socket.getInputStream(); InputStreamReader isr =new InputStreamReader(is); BufferedReader br =new BufferedReader(isr); String info =null; while((info=br.readLine())!=null){ System.out.println("我是伺服器,客戶端說:"+info); } socket.shutdownInput();//關閉輸入流 //4、獲取輸出流,響應客戶端的請求 OutputStream os = socket.getOutputStream(); PrintWriter pw = new PrintWriter(os); pw.write("歡迎您!"); pw.flush(); //5、關閉資源 pw.close(); os.close(); br.close(); isr.close(); is.close(); socket.close(); serverSocket.close(); } catch (IOException e) { e.printStackTrace(); } } }
控制台輸出:
我是伺服器,客戶端說:用戶名:admin;密碼:123
客戶端:
1.創建socket對象,指明需要連接的伺服器地址和埠號;
2.建立連接後,通過輸出流向伺服器端發送請求信息;
3.通過輸入流獲取伺服器的響應信息;
4.關閉相關資源;
package com.wxd.socket; import java.io.*; import java.net.Socket; /** * 基於TCP協議的Socket通信,實現客戶端 */ public class Client { public static void main(String[] args) { try { //客戶端 //1、創建客戶端Socket,指定伺服器地址和埠 Socket socket =new Socket("localhost",10086); //2、獲取輸出流,向伺服器端發送信息 OutputStream os = socket.getOutputStream();//位元組輸出流 PrintWriter pw =new PrintWriter(os);//將輸出流包裝成列印流 pw.write("用戶名:admin;密碼:123"); pw.flush(); socket.shutdownOutput(); //3、獲取輸入流,並讀取伺服器端的響應信息 InputStream is = socket.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); String info = null; while((info=br.readLine())!=null){ System.out.println("我是客戶端,伺服器說:"+info); } //4、關閉資源 br.close(); is.close(); pw.close(); os.close(); socket.close(); }catch(IOException e){ e.printStackTrace(); } } }
控制台輸出:
我是客戶端,伺服器說:歡迎您!
Process finished with exit code 0