<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Day27-C:\Users\Lenovo\Desktop\note\code\JavaSE\Basic\src\com\Threadcase\ThreadPool+C:\Users\Lenovo\Desktop\note\code\JavaSE\Basic\src\com\IPDemo\UDPDemo-線程池和網絡編程UDP

      自定義線程池

      image-20251031164343404

      臨時線程創建時機:當核心線程全都占用且等待隊列中的數量已經超過設定的閾值的時候,才會觸發創建臨時線程

      image-20251031164749071

      image-20251031164857244

      image-20251031164925435

      package Basic.src.com.Threadcase.ThreadPool;
      
      import java.util.concurrent.*;
      
      public class MyThreadPoolDemo1 {
          public static void main(String[] args) {
              /*
              * (核心線程數量,最大線程數量,空閑線程最大存活時間,任務隊列,創建線程工廠,任務的拒絕策略)
              * 
              * 參數一:核心線程數量                不能小于0
              * 參數二:最大線程數                     不能小于等于0,最大數量>=核心線程數量
              * 參數三:空閑線程最大存活時間   不能小于0
              * 參數四:時間單位                          用 TimeUnit指定
              * 參數五:任務隊列 (排隊的客戶)  不能為null
              * 參數六:創建線程工廠                   不能為null
              * 參數七:任務的拒絕策略             不能為null  
              * 
              * */
      
              ThreadPoolExecutor pool = new ThreadPoolExecutor(
                      3, 
                      6,//最大線程數
                      60,//空閑線程最大空閑時間
                      TimeUnit.SECONDS,//時間單位
                      new ArrayBlockingQueue<>(3),//任務隊列,阻塞隊列
                      Executors.defaultThreadFactory(),//創建線程工廠
                      new ThreadPoolExecutor.AbortPolicy()//任務的拒絕策略 
              );
              pool.submit(new MyRunnable());
          }
      }
      

      image-20251031170605959

      網絡編程

      java.net.

      通信架構

      CS架構(客戶端服務端)

      image-20251031190011783

      BS架構(瀏覽器服務端)

      image-20251031190027464

      網絡編程三要素

      1. IP地址:設備在網絡中的地址
      2. 端口號:應用程序在設備中唯一的標識
      3. 協議:連接和數據在網絡中傳輸的規則

      IP地址

      互聯網協議地址Internet Prototol

      兩種形式:IPv4(32位) IPv6

      IPv4 地址 . . . . . . . . . . . . : 192.168.137.1

      windows+R調出cmd,輸入ipconfig回車

      image-20251031190925048

      IPv6地址 fe80::96de:391e:5aa7:6696%15

      image-20251031191049550

      IP域名

      image-20251031192222203

      1. 重置網絡協議:以管理員身份運行命令提示符,依次執行ipconfig /release、ipconfig /renew、ipconfig /flushdns,再重新測試ping 127.0.0.1。

      image-20251031192901786

      InetAddress

      代表IP地址

      image-20251031193058079

      package Basic.src.com.IPDemo;
      
      import java.io.IOException;
      import java.net.InetAddress;
      import java.net.UnknownHostException;
      
      public class InetAddressTest {
          public static void main(String[] args) throws IOException {
              //1.獲取本機IP地址對象
              InetAddress ip1 = InetAddress.getLocalHost();
              System.out.println(ip1.getHostName());
              System.out.println(ip1.getHostAddress());//192.168.137.1
              InetAddress ip2 = InetAddress.getByName("www.baidu.com");
              System.out.println(ip2.getHostName());//www.baidu.com
              System.out.println(ip2.getHostAddress());//180.101.49.44  36.152.44.132
      
              //ping www.baidu.com
              System.out.println(ip2.isReachable(6000));
          }
      }
      

      端口號

      標記在計算機設備上運行的應用程序,被規定為一個16位的二進制,范圍是0~65535

      image-20251031194217385

      image-20251031194444114

      協議

      網絡上通信的協議,事先規定的連接規則,以及傳輸數據的規則被稱為網絡協議。

      開放式網絡互聯標準:OSI網絡參考模型

      image-20251031195331412

      UDP用戶數據報協議

      特點:無連接、不可靠通信

      image-20251031200112584

      TCP傳輸控制協議

      特點:面向連接、可靠通信

      最終目標:要保證在不可靠的信道上實現可靠的傳輸

      TCP的三步驟:三次握手建立連接、傳輸數據進行確認、四次揮手斷開連接。

      image-20251031201231053

      三次握手

      image-20251031200605950

      四次揮手斷開連接

      image-20251031201144270

      UDP通Data信

      java.net.DatagremSocket類

      image-20251031201711808

      image-20251031202043614

      package Basic.src.com.IPDemo.UDPDemo.Demo01;
      
      import java.io.IOException;
      import java.net.DatagramPacket;
      import java.net.DatagramSocket;
      import java.net.InetAddress;
      
      public class Client {
          public static void main(String[] args) throws IOException {
              //1.創建客戶端對象(發韭菜出去的人)
              DatagramSocket socket = new DatagramSocket(7777);
      
              //2.創建數據包對象封裝要發出去的數據(創建一個韭菜盒子)
              /*
              * public DatagramPacket(byte buf[], int length,
                                InetAddress address, int port)
                                * 參數一:封裝要發出去的數據
                                * 參數二:發生出去的數據大?。ㄗ止潅€數)
                                * 參數三:服務端的IP地址(找到服務端主機)InetAddress.getByName(****)
                                * 參數四:服務器程序的端口
                                * */
              //"我是快樂的客戶端,我愛你abc"
              byte[] bytes = "我是快樂的客戶端,我愛你abc".getBytes();
              DatagramPacket packet = new DatagramPacket(bytes, bytes.length, InetAddress.getLocalHost(),6666);
      
              //開始正式發送這個數據包的數據出去了
              socket.send(packet);
      
              System.out.println("客戶端數據發生完畢");
              socket.close();//釋放資源
          }
      }
      
      package Basic.src.com.IPDemo.UDPDemo.Demo01;
      
      import java.io.IOException;
      import java.net.DatagramPacket;
      import java.net.DatagramSocket;
      
      public class Server {
          public static void main(String[] args) throws Exception {
              System.out.println("-----------------------服務端啟動-------------------------");
              //1.創建一個服務端對象(創建一個接韭菜的人)注冊端口
              DatagramSocket socket = new DatagramSocket(6666);
      
              //2.創建一個數據包對象,用于接收數據(創建一個韭菜盤子)
              byte[] buffer = new byte[1024*64];//64KB,一包數據不會超過64Kb
              DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
      
              //正式使用數據包來接收客戶端發來的數據
              socket.receive(packet);
      
              //4.從字符數組中,把接收到的數據直接打印出來
              //獲取本次數據包接收了多少數據
              String rs = new String(buffer, 0, packet.getLength());
              System.out.println(rs);
      
              System.out.println(packet.getAddress());
              System.out.println(packet.getPort());//客戶端(發送端)的端口,系統默認可以隨機分配
      
              socket.close();//釋放資源
          }
      }
      

      實現多次反復傳輸

      package Basic.src.com.IPDemo.UDPDemo.Demo02;
      
      import java.io.IOException;
      import java.net.DatagramPacket;
      import java.net.DatagramSocket;
      import java.net.InetAddress;
      import java.util.Scanner;
      
      public class Cilent {
          public static void main(String[] args) throws Exception {
              //1.創建客戶端對象(發韭菜出去的人)
              DatagramSocket socket = new DatagramSocket();//多開端口時不能設定好
      
              //2.創建數據包對象封裝要發出去的數據(創建一個韭菜盒子)
              /*
              * public DatagramPacket(byte buf[], int length,
                                InetAddress address, int port)
                                * 參數一:封裝要發出去的數據
                                * 參數二:發生出去的數據大?。ㄗ止潅€數)
                                * 參數三:服務端的IP地址(找到服務端主機)InetAddress.getByName(****)
                                * 參數四:服務器程序的端口
                                * */
              Scanner sc = new Scanner(System.in);
              while (true) {
                  //"我是快樂的客戶端,我愛你abc"
                  System.out.println("請說:");
                  String msg = sc.nextLine();
                  //在這段代碼中,while (true) 循環里的 String msg = sc.nextLine(); 是一個阻塞式操作—— 當程序執行到這行時,會暫停當前線程的執行,
                  // 直到用戶在控制臺輸入內容并按下回車,nextLine() 方法才會返回輸入的字符串,線程才會繼續執行后續的發送邏輯。
      
                  //一旦發現用戶輸入exit就退出
                  if("exit".equals(msg)) {
                      System.out.println("歡迎下次光臨,退出成功");
                      socket.close();//釋放資源
                      break;//跳出死循環
                  }
                  byte[] bytes = msg.getBytes();
                  DatagramPacket packet = new DatagramPacket(bytes, bytes.length, InetAddress.getLocalHost(),6666);
      
                  //開始正式發送這個數據包的數據出去了
                  socket.send(packet);
              }
          }
      }
      
      package Basic.src.com.IPDemo.UDPDemo.Demo02;
      
      import java.io.IOException;
      import java.net.DatagramPacket;
      import java.net.DatagramSocket;
      
      public class Server {
          public static void main(String[] args) throws Exception {
              System.out.println("-----------------------服務端啟動-------------------------");
              //1.創建一個服務端對象(創建一個接韭菜的人)注冊端口
              DatagramSocket socket = new DatagramSocket(6666);
      
              //2.創建一個數據包對象,用于接收數據(創建一個韭菜盤子)
              byte[] buffer = new byte[1024*64];//64KB,一包數據不會超過64Kb
              DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
      
              while (true) {
                  //正式使用數據包來接收客戶端發來的數據
                  socket.receive(packet);
      
                  //4.從字符數組中,把接收到的數據直接打印出來
                  //獲取本次數據包接收了多少數據
                  String rs = new String(buffer, 0, packet.getLength());
                  System.out.println(rs);
      
                  System.out.println(packet.getAddress());
                  System.out.println(packet.getPort());//客戶端(發送端)的端口,系統默認可以隨機分配
      
                  //socket.close();//釋放資源,服務端一般不關的
                  System.out.println("----------------------------------------------------");
              }
          }
      }
      
      posted @ 2025-10-31 22:00  David大胃  閱讀(2)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 无码中文字幕人妻在线一区| 精品国产女同疯狂摩擦2| 日韩av一区二区精品不卡| 少妇伦子伦精品无吗| 国产免费毛卡片| 亚洲综合国产激情另类一区| 一区二区三区激情都市| 中文文字幕文字幕亚洲色| 亚洲精品无码久久一线| 亚洲AV旡码高清在线观看| 亚洲一区二区三区啪啪| 国产国拍精品av在线观看| 亚洲午夜福利精品无码不卡| 浓毛老太交欧美老妇热爱乱| 亚洲精品一区二区三天美| 国产成人无码免费视频在线 | 视频一区视频二区亚洲视频| 91久久国产成人免费观看| 东京热加勒比无码少妇| 瑞安市| 中文字幕成人精品久久不卡| 国产免费一区二区三区在线观看| yyyy在线在片| 九九视频热最新在线视频| 毛片tv网站无套内射tv网站| 日韩区一区二区三区视频| 国产中文字幕在线精品| 性欧美VIDEOFREE高清大喷水 | 久久国产成人亚洲精品影院老金| 成人欧美一区在线视频| 最新亚洲人成网站在线观看| 国产精品高清视亚洲乱码| 商丘市| 精品亚洲国产成人av| 国产中文三级全黄| 免费看无码自慰一区二区| 色偷偷久久一区二区三区| 久久精品中文字幕免费| 粉嫩一区二区三区精品视频| 福利一区二区视频在线| 人妻激情乱人伦视频|