1. 程式人生 > 其它 >網路程式設計概念、要素、IP

網路程式設計概念、要素、IP

網路程式設計

1.1 網路程式設計基本概念

1、網路、通訊

  1. 網路

將不同區域的電腦連線到一起,組成區域網、都會網路或廣域網。把分佈在不同地理區域的計算機與專門的外部裝置用通訊線路互聯成一個規模大、功能強的網路系統,從而使眾多的計算機可以方便地互相傳遞資訊,共享硬體、軟體、資料資訊等資源

  1. 計算機網路

是指將地理位置相同的具有獨立功能的多臺計算機及其外部裝置,通過通訊線路連線起來,在==網路作業系統、網路管理軟體及通訊協議的管理和協調下,實現資源共享和資訊傳遞的計算機系統

  1. 通訊協議

計算機網路中實現通訊必須有一些約定即通訊協議,對速率、傳輸程式碼、程式碼結構、傳輸控制步驟、出錯控制等制定標準

  1. 通訊介面

為了使兩個結點之間能進行對話,必須在它們之間建立通訊工具(即介面),使彼此之間能進行資訊交換

其包括兩個部分

  • 硬體裝置:實現節點之間的資訊傳送
  • 軟體裝置:規定雙方進行通訊的約定協議

2、網路分層

  • 由於結點之間聯絡很複雜,在指定協議時,把複雜成份分解成一些簡單的成份,再將他們複合起來。最常用的複合方式是層次方式,即同層間可以通訊、上一層可以呼叫下一層,而與再下一層不發生關係

  • TCP/IP是一個協議族,也是按照層次劃分,共四層:應用層,傳輸層,互連網路層,介面層(物理+資料鏈路層)

  • OSI網路通訊協議模型,是一個參考模型,而TCP/IP協議是事實上的標準。TCP/IP協議參考了OSI模型,但是並沒有嚴格按照OSI規定的七層標準去劃分,而只劃分了四層,這樣會更簡單點,當劃分太多層時,你很難區分某個協議是屬於哪個層次的

    這裡主要關注傳輸層 --- TCP、UDP

1.2 網路程式設計三要素

1、IP地址

IP地址:是網路中裝置的唯一標識

  • 要想讓網路中的計算機能夠互相通訊,必須為計算機指定一個標識號,通過這個標識號來指定要接受資料的計算機和識別傳送的計算機,而IP地址就是這個標識號,也就是裝置的標識。

2、

  • 網路的通訊,本質上是兩個應用程式的通訊。每臺計算機都有很多的應用程式,那麼在網路通訊時,如何區別這些應用程式呢?如果說IP地址可以唯一的標識網路中的裝置,那麼埠號就可以唯一標識裝置中的應用程式,也就是應用程式的標識。

3、協議

  • 通過計算機網路可以使多臺計算機實現連線,位於同一網路中的計算機進行連線和通訊時需要遵守一定的規則,這就好比在道路中行駛的汽車一定要遵守交通規則一樣。在計算機網路中,這些連線和通訊的規則被稱為計算機網路通訊協議。它對資料的傳輸格式、傳輸速率、傳輸步驟
    等做了統一規定,通訊雙方必須同時遵守才能完成資料交換。
  • 常見的協議有TCP協議和UDP協議

1.3 IP地址

1. 分類

IP地址:是網路中裝置的唯一標識

  • IPv4:是給每個連線在網路上的主機分配一個32bit地址。按照TCP/IP規定,IP地址用二進位制來表示,每個IP地址的長32bit,也就是4個位元組。例如一個採用二進位制形式的地址是“11000000 10101000 00000001 01000010”,這麼長的地址,處理起來也太費勁了。為了方便使用,IP地址經常被寫成十進位制的形式,中間使用符號“ . ”分隔不同的位元組。於是,上面的IP地址可以表示為“192.168.1.66”。IP地址的這種表示法叫做 “點分十進位制法”,這顯然比1和0容易記得多
  • IPv6:由於網際網路的蓬勃發展,IP地址的需求量愈來愈大,但是網路地址資源有限,使得IP的分配越發緊張。為了擴大地址空間,通過IPv6重新定義地址空間,採用128bit地址長度,每16個位元組一組,分成8組十六進位制數,這就解決了網路地址資源數量不夠的問題

2.常用DOS命令

  • ipconfig:檢視本機IP地址

    ping IP地址:檢查網路是否連通

3.特殊IP地址

  • 127.0.0.1:是回送地址,可以代表本機地址,一般用來測試使用
  • 190.168.0.0 – 192.168.255.255:私有地址,屬於非註冊地址,專門為組織機構內部使用

1.4 InetAddress 的使用

為了方便我們對IP地址的獲取和操作,Java提供了一個類InetAddress供我們使用

InetAddress:此類表示Internet協議(IP)地址,用於封裝計算機的IP地址和DNS(沒有埠資訊)

方法名 描述
static InetAddress getByName(String host) 確定主機名稱的IP地址。主機名稱可以是機器名稱,也可以是IP地址和域名
String getHostName() 獲取此IP地址的主機名
String getHostAddress() 返回文字顯示中的IP地址字串

程式碼



主機名稱獲取

  • 主機名稱可以在 Windows設定 - 系統 - 關於 裡找到和重新命名(Win10)