<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 1.創建線程池 ~~~ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.Socket; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.ExecutorService; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; /** * 線程池 */ public class HandlerSocketServerPool { // 儲存線程池對象 private ExecutorService executorService; /** * * @param maxThreadNum 最大線程池 * @param queueSize 處理任務的個數 * public ThreadPoolExecutor(int corePoolSize, 核心線程數 * int maximumPoolSize,最大線程數量 * long keepAliveTime,線程空閑時間 * TimeUnit unit, 線程空閑時間 單位 * BlockingQueue<Runnable> workQueue) */ HandlerSocketServerPool(int maxThreadNum,int queueSize){ executorService= new ThreadPoolExecutor( 3,maxThreadNum, 120, TimeUnit.SECONDS, // ArrayBlockingQueue 阻塞式隊列 泛型任務對象 queueSize 最大任務對象 new ArrayBlockingQueue<Runnable>(queueSize) ); } /** * 提交任務讓消息隊列緩存起來 * @param target */ public void execute(Runnable target) { // 執行 executorService.execute(target); } } ~~~ # 2.創建任務對象 ~~~ import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.Socket; /** * 任務對象 */ public class ServerRunnableTarget implements Runnable { private Socket socket; public ServerRunnableTarget(Socket socket){ this.socket=socket; } @Override public void run() { // 從socket中獲取字節輸入流對象 try (InputStream inputStream = socket.getInputStream()) { //把字節輸入流包裝成緩存字節輸入流 BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); String msg; while ((msg=bufferedReader.readLine())!=null){ System.out.println("服務器收到信息:"+msg); } } catch (Exception e) { e.printStackTrace(); } } } ~~~ # 3.創建服務端 ~~~ import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; public class Server { public static void main(String[] args) { System.out.println("服務端啟動"); try { // ServerSocket 對象進行服務器端口注冊 ServerSocket serverSocket = new ServerSocket(9999); // 初始化線程池 final HandlerSocketServerPool pool = new HandlerSocketServerPool(3, 10); while (true){ Socket socket = serverSocket.accept(); // 把socket交給線程池進行處理 ServerRunnableTarget target = new ServerRunnableTarget(socket); // 提交任務 pool.execute(target); } }catch (Exception e){ e.fillInStackTrace(); } } } ~~~ # 4. 創建客戶端 ~~~ import java.io.*; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; public class Client { public static void main(String[] args) { try { // 創建socket鏈接請求 Socket socket = new Socket("127.0.0.1", 9999); // 從socket中獲取字節輸出流對象 OutputStream socketOutputStream = socket.getOutputStream(); //把字節輸出流包裝成打印流 PrintStream printStream = new PrintStream(socketOutputStream); // 掃描器 Scanner scanner = new Scanner(System.in); while (true) { System.out.println("請說:"); printStream.println(scanner.nextLine()); printStream.flush(); } } catch (Exception e) { e.fillInStackTrace(); } } } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看