日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

JavaSE(十四)——网络编程(IP地址、端口号、TCP、UDP)

發布時間:2025/3/13 java 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaSE(十四)——网络编程(IP地址、端口号、TCP、UDP) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 1. 概述
  • 2. InetAddress類
  • 3. 端口
  • 4. TCP協議
    • 4.1 傳輸消息
    • 4.2 文件上傳
  • 5. UDP協議
  • 6. TCP與UDP區別
  • 7. URL
  • 8. 下載資源
  • 9. 協議相關面試題
        • (1)講一下瀏覽器從接收到一個 URL 到最后展示出頁面,經歷了哪些過程。
        • (2)http 和 https 的區別

1. 概述

  • 網絡編程:使用套接字(socket)來達到進程間通信,現在一般稱為TCP/IP編程

  • 套接字(socket):網絡上具有唯一標識的IP地址和端口號組合在一起才能構成唯一能識別的標識符套接字。

  • 套接字原理機制
    通信的兩端都有Socket。
    網絡通信其實就是Socket間的通信。
    數據在兩個Socket間通過IO傳輸。

  • 網絡編程三要素①IP地址:InetAddress: 網絡中設備的標識,不易記憶,可用主機名;②端口號: 用于標識進程的邏輯地址,不同進程的標識;③傳輸協議: 通訊的規則常見協議:TCP,UDP。

  • IP地址分類
    A類:1.0.0.1—127.255.255.254
    (1)10.X.X.X是私有地址(私有地址就是在互聯網上不使用,而被用在局域網絡中的地址)
    (2)127.X.X.X是保留地址,用做循環測試用的。
    B類:128.0.0.1—191.255.255.254 172.16.0.0—172.31.255.255是私有地址。
    C類:192.0.0.1—223.255.255.254 192.168.X.X是私有地址
    D類: 224.0.0.1—239.255.255.254
    E類: 240.0.0.1—247.255.255.254

  • 參考模型

2. InetAddress類

  • 表示互聯網協議 (IP) 地址,方便我們對IP地址的獲取和操作。

  • InetAddress.getByName(String host) //在給定主機名的情況下獲取主機的IP地址

  • inetAddress.getHostAddress() //獲取IP

  • ? inetAddress.getHostName() //獲取主機名

  • 實例

  • 運行結果

3. 端口

  • 端口表示計算機上的一個程序的進程;端口的表示是一個16位的二進制數,2個字節,對應十進制的0~65535;單個協議下,端口號不能沖突,多個協議下,端口號可以相同;
  • 分類:公有端口:0~1023
    程序注冊端口:1024~49151,用戶分配或者程序
    動態、私有:49152~65535
  • 實例
  • 運行結果

4. TCP協議

  • TCP協議:傳輸控制協議,是可靠連接,類似于打電話,只有等待對方接通的時候才可以交流,也就是確認了對方可以傳信息,才會發送信息,三次握手,四次揮手,但是傳輸速度慢;

4.1 傳輸消息

  • 實例:
    客戶端:


    服務器

  • 運行結果

4.2 文件上傳

  • 實例

客戶端

服務端

  • 運行結果

5. UDP協議

  • UDP協議:用戶數據報協議,是不可靠的,就像發短信,發出去就完事了,對方是否接收到就與自己無關,但是傳輸速度快;
  • 實例

用戶端


服務器

  • 運行結果

6. TCP與UDP區別

  • TCP(傳輸控制協議)是一種面向連接的、可靠的、基于字節流的傳輸層通信協議,是專門為了在不可靠的網絡中提供一個可靠的端對端字節流而設計的,面向字節流。
  • UDP(用戶數據報協議)是iso參考模型中一種無連接的傳輸層協議,提供簡單不可靠的非連接傳輸層服務,面向報文。

區別:
1) TCP是面向連接的,可靠性高;UDP是基于非連接的,可靠性低;
2) 由于TCP是連接的通信,需要有三次握手、重新確認等連接過程,會有延時,實時性差,同時過程復雜,也使其易于攻擊;UDP沒有建立連接的過程,因而實時性較強,也稍安全;
3) 在傳輸相同大小的數據時,TCP首部開銷20字節;UDP首部開銷8字節,TCP報頭比UDP復雜,故實際包含的用戶數據較少。TCP在IP協議的基礎上添加了序號機制、確認機制、超時重傳機制等,保證了傳輸的可靠性,不會出現丟包或亂序,而UDP有丟包,故TCP開銷大,UDP開銷較小;
4) 每條TCP連接只能時點到點的;UDP支持一對一、一對多、多對一、多對多的交互通信。

應用場景選擇

  • 對實時性要求高和高速傳輸的場合下使用UDP;
  • 在可靠性要求低,追求效率的情況下使用UDP;
  • 需要傳輸大量數據且對可靠性要求高的情況下使用TCP。

7. URL

  • 統一資源定位符:定位資源的,定位互聯網上的某一個資源
  • 實例

8. 下載資源

  • 代碼

9. 協議相關面試題

(1)講一下瀏覽器從接收到一個 URL 到最后展示出頁面,經歷了哪些過程。

1、DNS 解析
2、TCP 連接
3、發送 HTTP 請求
4、服務器處理請求并返回 HTTP 報文
5、瀏覽器解析渲染頁面

(2)http 和 https 的區別

1、連接的端口不一樣,http 是 80,https 是 443
2、http 連接很簡單,沒有狀態; https 是 ssl 加密的傳輸,身份認證的網絡協議,相對 http 傳輸比較安全

總結

以上是生活随笔為你收集整理的JavaSE(十四)——网络编程(IP地址、端口号、TCP、UDP)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。