1. 程式人生 > >Socket通信實現步驟

Socket通信實現步驟

clas 網絡連接 shu lin 接受 null red stack sage

public class Server {

    public static void main(String[] args) {
        
        try {
            ServerSocket serverSocket = new ServerSocket(8888);
            System.out.println("服務器啟動中....");
            //accept()是在一個套接口接受的一個連接。accept()是c語言中網絡編程的重要的函數,
            //本函數從s的等待連接隊列中抽取第一個連接,創建一個與s同類的新的套接口並返回句柄。
Socket socket = serverSocket.accept();//獲取Socket InputStream is = socket.getInputStream();//獲取輸入流 InputStreamReader isr = new InputStreamReader(is);//InputStreamReader類是從字節流到字符流的橋接器 BufferedReader br = new BufferedReader(isr);//緩沖流 System.out.println("客戶端數據" + br.readLine()); String info
= null; while((info = br.readLine()) != null){ System.out.println("客戶端傳遞的信息" + info); } socket.shutdownInput();//shutdownInput和shutdownOutput只關閉相應的輸入、輸出流,不會同時關閉網絡連接的功能。 OutputStream os = socket.getOutputStream(); PrintWriter pw
= new PrintWriter(os); pw.write("歡迎您!!"); pw.flush();//flush()是清空,而不是刷新 將緩沖區的內容輸出 pw.close(); os.close(); br.close(); isr.close(); is.close(); socket.close(); serverSocket.close(); } catch (IOException e) { System.out.println(e.getMessage()); e.printStackTrace(); } } }

public class Client {
    
    public static void main(String[] args) {
        try {
            Socket socket = new Socket("localhost", 8888);
            System.out.println("客戶端啟動中....");
            OutputStream os = socket.getOutputStream();
            PrintWriter pw = new PrintWriter(os);
            pw.write("admin");
            pw.flush();
            socket.shutdownOutput();
            
            InputStream is = socket.getInputStream();
            BufferedReader br = new BufferedReader(new InputStreamReader(is));
            String info = null;
            while((info = br.readLine()) != null){
                System.out.println("服務端返回的信息" + info);
            }
            
            os.close();
            pw.close();
            is.close();
            br.close();
            socket.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

Socket通信實現步驟