JavaSE-21.1【網路程式設計入門】
阿新 • • 發佈:2021-06-10
1 package day12.lesson1; 2 3 import java.net.InetAddress; 4 import java.net.UnknownHostException; 5 6 /* 7 1 網路程式設計入門 8 9 1.1 網路程式設計概述 10 11 計算機網路 12 是指將地理位置不同的具有獨立功能的多臺計算機及其外部裝置,通過通訊線路連線起來, 13 在網路作業系統,網路管理軟體及網路通訊協議的管理和協調下,實現資源共享和資訊傳遞的計算機系統 14 網路程式設計15 在網路通訊協議下,實現網路互連的不同計算機上執行的程式間可以進行資料交換 16 17 1.2 網路程式設計三要素 18 19 IP地址 20 要想讓網路中的計算機能夠互相通訊,必須為每臺計算機指定一個標識號, 21 通過這個標識號來指定要接收資料的計算機和識別傳送的計算機,而IP地址就是這個標識號。也就是裝置的標識 22 埠 23 網路的通訊,本質上是兩個應用程式的通訊。每臺計算機都有很多的應用程式,那麼在網路通訊時, 24 如何區分這些應用程式呢?如果說IP地址可以唯一標識網路中的裝置,25 那麼埠號就可以唯一標識裝置中的應用程式了。也就是應用程式的標識 26 協議 27 通過計算機網路可以使多臺計算機實現連線,位於同一個網路中的計算機在進行連線和通訊時需要遵守一定的規則, 28 這就好比在道路中行駛的汽車一定要遵守交通規則一樣。 29 在計算機網路中,這些連線和通訊的規則被稱為網路通訊協議, 30 它對資料的傳輸格式、傳輸速率、傳輸步驟等做了統一規定, 31 通訊雙方必須同時遵守才能完成資料交換。常見的協議有UDP協議和TCP協議 32 33 1.2 IP地址34 35 IP地址:是網路中裝置的唯一標識 36 37 IP地址分為兩大類 38 IPv4: 39 是給每個連線在網路上的主機分配一個32bit地址。 40 按照TCP/IP規定,IP地址用二進位制來表示,每個IP地址長32bit,也就是4個位元組。 41 例如一個採用二進位制形式的IP地址是“11000000 1010100000000001 01000010”, 42 這麼長的地址,處理起來也太費勁了。為了方便使用,IP地址經常被寫成十進位制的形式, 43 中間使用符號“.”分隔不同的位元組。於是,上面的IP地址可以表示為“192.168.1.66”。 44 IP地址的這種表示法叫做“點分十進位制表示法”,這顯然比1和0容易記憶得多 45 IPv6: 46 由於網際網路的蓬勃發展,IP地址的需求量愈來愈大,但是網路地址資源有限,使得IP的分配越發緊張。 47 為了擴大地址空間,通過IPv6重新定義地址空間, 48 採用128位地址長度,每16個位元組一組,分成8組十六進位制數,這樣就解決了網路地址資源數量不夠的問題 49 50 DOS常用命令: 51 ipconfig:檢視本機IP地址 52 ping IP地址:檢查網路是否連通 53 54 特殊IP地址: 55 127.0.0.1:是回送地址,可以代表本機地址,一般用來測試使用 56 57 1.4 InetAddres 58 59 InetAddress:此類表示Internet協議(IP)地址 60 61 static InetAddress getByName(String host) 確定主機名稱的IP地址。主機名稱可以是機器名稱,也可以是IP地址 62 String getHostName() 獲取此IP地址的主機名 63 String getHostAddress() 返回文字顯示中的IP地址字串 64 65 1.5 埠的協議 66 67 埠:裝置上應用程式的唯一標識 68 埠號:用兩個位元組表示的整數,它的取值範圍是0~65535。其中,0~1023之間的埠號用於一些知名的網路服務和應用, 69 普通的應用程式需要使用1024以上的埠號。如果埠號被另外一個服務或應用所佔用,會導致當前程式啟動失敗 70 協議:計算機網路中,連線和通訊的規則被稱為網路通訊協議 71 72 UDP協議 73 (1)使用者資料報協議(User Datagram Protocol) 74 (2)UDP是無連線通訊協議,即在資料傳輸時,資料的傳送端和接收端不建立邏輯連線。 75 簡單來說,當一臺計算機向另外一臺計算機發送資料時,傳送端不會確認接收端是否存在, 76 就會發出資料,同樣接收端在收到資料時,也不會向傳送端反饋是否收到資料。 77 (3)由於使用UDP協議消耗資源小,通訊效率高,所以通常都會用於音訊、視訊和普通資料的傳輸 78 (4)例如視訊會議通常採用UDP協議,因為這種情況即使偶爾丟失一兩個資料包,也不會對接收結果產生太大影響。 79 但是在使用UDP協議傳送資料時,由於UDP的面向無連線性,不能保證資料的完整性, 80 因此在傳輸重要資料時不建議使用UDP協議 81 82 TCP協議 83 (1)傳輸控制協議 (Transmission Control Protocol) 84 (2)TCP協議是面向連線的通訊協議,即傳輸資料之前,在傳送端和接收端建立邏輯連線, 85 然後再傳輸資料,它提供了兩臺計算機之間可靠無差錯的資料傳輸。 86 在TCP連線中必須要明確客戶端與伺服器端,由客戶端向服務端發出連線請求,每次連線的建立都需要經過“三次握手” 87 (3)三次握手:TCP協議中,在傳送資料的準備階段,客戶端與伺服器之間的三次互動,以保證連線的可靠 88 第一次握手,客戶端向伺服器端發出連線請求,等待伺服器確認 89 第二次握手,伺服器端向客戶端回送一個響應,通知客戶端收到了連線請求 90 第三次握手,客戶端再次向伺服器端傳送確認資訊,確認連線 91 (4)完成三次握手,連線建立後,客戶端和伺服器就可以開始進行資料傳輸了。由於這種面向連線的特性, 92 TCP協議可以保證傳輸資料的安全,所以應用十分廣泛。例如上傳檔案、下載檔案、瀏覽網頁等 93 */ 94 public class InetAddressDemo { 95 public static void main(String[] args) throws UnknownHostException { 96 InetAddress address = InetAddress.getByName("MSI-YUBABY"); 97 98 String name = address.getHostName(); 99 System.out.println("主機名:" + name); 100 101 String ip = address.getHostAddress(); 102 System.out.println("IP地址:" + ip); 103 } 104 }