服務端:
java
package socket; 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; /** *socket服務端 * */ public class TCPServer { public static void main(String[] args) { try { // 建立一個服務端socket實例,並綁定指定端口,同時監聽該端口 ServerSocket serversocket = new ServerSocket(7777); //調用accept()啓動端口監聽,等待客戶端請求 System.out.println("服務端已啓動,正在監聽......"); Socket socket = serversocket.accept();//監聽7777端口 InputStream is = socket.getInputStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String info = br.readLine(); while(!"".equals(info) && info != null){ System.out.println("服務端捕獲到客戶端信息:######"+info); info = br.readLine(); } //關閉相關資源 socket.shutdownInput(); //服務端建立輸出流,響應客戶端請求 OutputStream os = socket.getOutputStream(); PrintWriter pw = new PrintWriter(os); pw.write("用戶名密碼正確,歡迎登錄"); pw.flush(); //關閉相關資源 socket.shutdownOutput(); //關閉其餘資源 pw.close(); os.close(); br.close(); isr.close(); is.close(); socket.close(); serversocket.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
輸出結果:緩存
服務端已啓動,正在監聽......socket
服務端捕獲到客戶端信息:######用戶名:admin 密碼:1234.net
客戶端:code
package socket; 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; import java.net.UnknownHostException; public class TCPClient { public static void main(String[] args) { try { //建立客戶端socket,指定服務端地址和端口 Socket socket = new Socket("localhost", 7777); //創建一個輸出流,用於向服務端發送信息 OutputStream os = socket.getOutputStream(); //建立一個打印流幷包裝輸出流 PrintWriter pw = new PrintWriter(os); pw.write("用戶名:admin 密碼:1234"); pw.flush();//刷新緩存 //關閉資源 socket.shutdownOutput(); //建立輸入流,用於讀取服務端響應信息 InputStream is = socket.getInputStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String serinfo = br.readLine(); while(!"".equals(serinfo) && serinfo != null){ System.out.println("客戶端獲取服務端響應信息:*****"+serinfo); serinfo = br.readLine(); } socket.shutdownInput(); br.close(); isr.close(); is.close(); pw.close(); os.close(); } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
輸出結果:server
客戶端獲取服務端響應信息:*****用戶名密碼正確,歡迎登錄資源