<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 網絡程序 ,服務器端為每個客戶端創建一個對 應的 Socket,并且開啟一個新的線程使兩個 Socket 建立專線進行通信。以下是我們為大家整理的,相信大家閱讀完后肯定有了自己的選擇吧。

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

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

      在例 13-10 和例 13-11 中分則實我了服務器端程序和客戶端程序,當一個客戶端程序請
      求服務器端時,服務器端就會結束阻塞狀態,完成程序的運行。實際上,很多服務器端程序
      都是允許收多個應用程序訪問的。例如門戶網站可以被多個用戶同時訪問,因此服務器都是
      多線程的,下面就通過一個圖例來表示多個用戶訪同一個服務器。如圖 13-19 所示。
      圖 13-19 代表的是多個客戶端訪問同一個服務器端,服務器端為每個客戶端創建一個對
      應的 Socket,并且開啟一個新的線程使兩個 Socket 建立專線進行通信,接下來根據圖 13-19
      所示的通信方式對例 13-11 的服務端程序進行改進,如例 13-12 所示。
      例 13-12 Example06.java
      import java.io.*;
      import java.net.*;
      public class Example06 {
      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 {
      // 創建 ServerSocket 對象,監聽指定的端口
      ServerSocket serverSocket = new ServerSocket(PORT);
      // 使用 while 循環不停的接收客戶端發送的請求
      while (true) {
      // 調用 ServerSocket 的 accept()方法與客戶端建立連接
      final Socket client = serverSocket.accept();
      // 下面的代碼用來開啟一個新的線程
      new Thread() {
      public void run() {
      OutputStream os; // 定義一個輸出流對象
      try {
      os = client.getOutputStream(); // 獲取客戶端的輸出

      System.out.println("開始與客戶端交互數據");
      os.write(("傳智播客歡迎你!").getBytes());
      Thread.sleep(5000); // 使線程休眠
      5000 毫秒
      System.out.println("結束與客戶端交互數據");
      os.close(); // 關閉輸出流
      client.close(); // 關閉 Socket 對

      } catch (Exception e) {
      e.printStackTrace();
      }
      };
      }.start();
      }
      }
      }
      例 13-12 中,使用多線程的方式創建了一個服務器端程序。通過在 whlie 循環中調用
      accept()方法,不停地接收客戶端發送的請求,當與客戶端建立連接后,就會開啟一個新的
      線程,該線程會去處理客戶端發送的數據,而主線程仍處于繼續等待狀態。
      為了驗證服務器端程序是否實現了多線程,首先運行服務器端程序(例 13-12),之后運行
      三個客戶端程序<例 13-11),當運行第一個客戶端程序時,服務器端馬上就進行數據處理,
      打印出"開始與客戶端交互數據",再運行第二個和第三個客戶端程序,會發現服務器端也
      立刻做出回應.兩個客戶端會話結束后分別打印各自結束信息,如圖 13-20 所示。這說明通

      過多線程的方式,可以實現多個用戶對同一個服務器端程序的訪問。

      from shengerguan



      上一篇:
      Java簡單的 TCP 網絡程序
      下一篇:
      Java TCP 案例-文件上傳
      標簽:
      網友評論
      發布評論

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

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

      相關推薦
      我也來發表評價關閉
      我對該內容的評價:
      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>