<b id="yt35u"></b>
  • <b id="yt35u"></b>

  • <tt id="yt35u"><form id="yt35u"></form></tt>
    <button id="yt35u"></button>

    <button id="yt35u"></button>

    <strike id="yt35u"><dfn id="yt35u"></dfn></strike>

    <i id="yt35u"></i>
    1. <tt id="yt35u"></tt>
      <b id="yt35u"><sub id="yt35u"><tr id="yt35u"></tr></sub></b>

      教育路上

      全國站>Java>網絡編程>Java簡單的 TCP 網絡程序
      學員需求

      Java簡單的 TCP 網絡程序

      摘要:Java 簡單 TCP 網絡 程序 ,接下來通過一個 TCP 通信的案例來進一步學習。 要實現 TCP 通信需要創建一個服務器端程序和一個客戶端程序,。以下是我們為大家整理的,相信大家閱讀完后肯定有了自己的選擇吧。

      2022-05-18 16:39網絡推薦

      發布時間:
      2022-05-18 16:39
      信息來源:
      網絡推薦
      瀏覽次數:
      1160
      Java簡單的 TCP 網絡程序

      通過前面兩個小節的講解,了解了 ServerSocket、Socket 類的基本用法,為了讓初學者
      更好地掌握這兩個類的使用,接下來通過一個 TCP 通信的案例來進一步學習。
      要實現 TCP 通信需要創建一個服務器端程序和一個客戶端程序,為了保證數據傳輸的安全
      性,首先需要實現服務器端程序,如例 13-10 所示。
      例 13-10 Example04.java
      import java.io.*;
      import java.net.*;
      public class Example04 {
      public static void main(String[] args) throws Exception {
      new TCPServer().listen(); // 創建 TCPServer 對象,并調用 listen()方法
      }
      }
      // TCP 服務端
      class TCPServer {
      private static final int PORT = 7788; // 定義一個端口號
      public void listen() throws Exception { // 定義一個 listen()方法,拋出一個異

      ServerSocket serverSocket = new ServerSocket(PORT); // 創建 ServerSocket
      對象
      Socket client = serverSocket.accept(); // 調用 ServerSocket 的 accept()方
      法接收數據
      OutputStream os = client.getOutputStream();// 獲取客戶端的輸出流
      System.out.println("開始與客戶端交互數據");
      os.write(("重工歡迎你!").getBytes()); // 當客戶端連接到服務端時,向客
      戶端輸出數據
      Thread.sleep(5000); // 模擬執行其它功能占用的時間
      System.out.println("結束與客戶端交互數據");
      os.close();
      client.close();
      }

      }運行結果如圖 13-16 所示。

      from shengerguan

      例 13-10 中,創建了一個服務器端程序,用于接收客戶端發送的數據。在創建 ServerSocke
      對象時指定了端口號,并調用該對象的 accept()方法。從運行結果可以看出,命令行窗口
      中的光標一直在閃動,這是因為 accept()方法發生阻塞,程序暫時停止運行,直到有客
      戶端來訪問時才會結束這種陽塞狀芯。這時該方法會返回一個 Socket 類型的對象用于表示
      客戶端,通過該對象獲取與客戶端關聯的輸出流并向客戶端發送信息,同時執行
      Thread.sleep(5000)語句植擬服務器執行其他功能占用的時間。最后,調用
      Socket 對象的 close()方法將通信結束。
      例 13-10 完成了服務器端程序的編寫,接下來編寫客戶端程序,如例 13-11 所示。
      例 13-11 Example05.java
      import java.io.*;
      import java.net.*;
      public class Example05 {
      public static void main(String[] args) throws Exception {
      new TCPClient().connect(); // 創建 TCPClient 對象,并調用
      connect()方法
      }
      }
      //TCP 客戶端
      class TCPClient {
      private static final int PORT = 7788; // 服務端的端口號
      public void connect() throws Exception {
      //創建一個 Socket 并連接到給出地址和端口號的計算機
      Socket client = new Socket(InetAddress.getLocalHost(), PORT);
      InputStream is = client.getInputStream(); // 得到接收數據的流
      byte[] buf = new byte[1024]; // 定義 1024 個字節數組的緩
      沖區
      int len = is.read(buf); // 將數據讀到緩沖區中
      System.out.println(new String(buf, 0, len)); // 將緩沖區中的數據輸出
      client.close(); // 關閉 Socket 對象,
      釋放資源
      }
      }
      運行結果如圖 13-17 所示。



      from shengerguan


      例 13-11 中,創建了一個客戶端程序,用于向服務器端發送數據。在客戶端創建 Socket 對象與服務器端建立連接后,通過 Socket 對象獲得輸人流讀取服務端發來的數,并打印結 果,如圖 13-17 所示。同時例 13-10 中的服務端程序結束了阻塞狀態,如圖 13-18 所示, 會打印出“開始與客戶端交互數據”,然后向客戶端發出數據“傳智播客歡迎你”,在休眠 5 秒鐘后會打印出“結束與客戶端交互數據”,本次通信結束。

      from shengerguan


      上一篇:
      Java Socket
      下一篇:
      Java多線程的 TCP 網絡程序
      標簽:
      網友評論
      發布評論

      訪客的評論 2024/07/10 12:42

      文中描述的是準確的嗎,如何報名!

      相關推薦
      我也來發表評價關閉
      我對該內容的評價:
      0
      評價500
      驗證碼: 看不清 換一張
      提交 (匿名發布,無須擔心別人知道您的身份)
      學校免費發布信息關閉
      我們審核后會盡快展示,如有圖片請發郵件到:edu63@foxmail.com

      姓      名:

      內      容:

      手機號碼:

      驗  證  碼:  換一張

      確認提交
      填寫需求信息關閉
      我們會根據您的需求匹配并審核留言

      姓      名:

      意向城市:

      留      言:

      手機號碼:

      驗  證  碼:  換一張

      確認提交
      完善補充本文信息關閉
      非常感謝您幫助完善補充本文信息


       換一張

      確認提交
      女班长给我看她的小内内

        <b id="yt35u"></b>
    1. <b id="yt35u"></b>

    2. <tt id="yt35u"><form id="yt35u"></form></tt>
      <button id="yt35u"></button>

      <button id="yt35u"></button>

      <strike id="yt35u"><dfn id="yt35u"></dfn></strike>

      <i id="yt35u"></i>
      1. <tt id="yt35u"></tt>
        <b id="yt35u"><sub id="yt35u"><tr id="yt35u"></tr></sub></b>