JavaSocket小Demo

這是一個使用java ServerSocket服務端 和 Socket客戶端寫的一個客戶端發送消息,服務端接收消息的Demo

寫在前面,首先需知道服務端的ip地址和端口號,這裏我們就是拿本機ip地址既作爲服務端也作爲客戶端,區別它們在於端口的不同,服務端需要設置固定端口,客戶端需要使用服務端的ip和服務器設置的固定端口

開發客戶端使用Socket

分爲四個步驟

 - 1創建Socket連接,並指定服務器ip和服務器端口
 - 2從建立的Socket哪裏獲取輸入輸出流
 - 3處理輸入輸出流
 - 4關閉連接

客戶端Socket代碼如下

  public static void main(String[] args) throws Exception{
        //Socket客戶端有四個步驟
        //第一步創建socket,指定服務器ip和服務器端口
        System.out.println("正在發起和服務器的連接");
        //這裏的ip地址可以設置爲你自己的IP地址
        //端口可以隨便設置,但一定要和下面服務端的端口一致,而且端口不能被佔用
        Socket socket = new Socket("10.9.21.233",9999);
        //第二步獲取輸入輸出流
        //這裏只獲取了輸出流
        OutputStream os = socket.getOutputStream();
        //第三步處理輸入輸出流
        //只發送消息給服務器,字符參數需轉爲byte字節參數發送
        os.write("對服務器說:hello".getBytes());
        //必須刷新
        os.flush();
        //第四步關閉資源
        //發送完成就關閉
        os.close();
        socket.close();
        System.out.println("退出");
    }

開發服務端使用ServerSocket

分爲個步驟,比客戶端多一個步驟

 - 1創建ServerSocket連接,並指定服務器端口,這個端口就是ServerSocket用來監聽的端口
 - 2監聽該端口,獲取與客戶端Socket的連接
 - 3從監聽到的Socket哪裏獲取輸入輸出流
 - 3處理輸入輸出流
 - 4關閉連接

客戶端ServerSocket代碼如下

 public static void main(String[] args) throws Exception {
        //ServerSocket服務器端有五個步驟
        //創建ServerSocket連接,並指定服務器端口,這個端口就是ServerSocket用來監聽的端口
        System.out.println("服務器啓動成功:");
        ServerSocket listener = new ServerSocket(9999);
        //第二步監聽該端口,獲取與客戶端Socket的連接
        Socket clientSocket = listener.accept();
        //第三步獲取輸入輸入流
        InputStream is = clientSocket.getInputStream();
        //第四步處理輸入輸出流
        //這裏建立了一個字節數組,用做緩衝區來接收客戶端Socket發過來的字節信息
        byte[] buf = new byte[1024];
        //用於判斷是否讀取完畢和保存讀取的數據存到了buf緩衝的哪一個位置了,從0開始存
        int len=-1;
        //這裏使用循環讀取,發送過來的字節信息,不等於-1代表還沒有讀取完畢
        while ((len=is.read(buf))!=-1){
            //從0位置開始讀取,到len位置結束
            // 因爲buf數組中有效的數據就是從0到len長度這個區間的數據
            String str = new String(buf,0,len);
            System.out.println("客戶端說:"+str);
        }
    }

上述就是最基礎的ServerSocket和Socket之間的通信
記得首先啓動服務端,然後在啓動客戶端,ip地址和端口號不要寫錯了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章