一、寫在開頭
大家好,Build哥回來啦!停更了大概2個月之久,之前有段時間去寫小說去了,後來又因為公司活太多,牛馬乾的太投入,就拉下了部落格的更新,國慶節期間,難得的閒下來,準備迴歸老本行啦。
大致的翻看了一下之前更新的內容,已經寫到了Java的IO部分,作為網路傳輸的一大重點知識,IO至關重要,而為了更好的理解和使用IO,我們今天要延展的來聊一聊Java中的網路程式設計。其實,這句話說的不太嚴謹,網路程式設計並非Java獨有,所有依賴Web端的程式語言,或者應用們都離不開網路程式設計。
二、網路程式設計的基礎
ok,閒話少敘,咱們直入主題,來一起學習一下網路程式設計,在開始學習之前,我們應該瞭解一下我們日常生活中都離不開的網際網路及周邊產品(路由器,網址,手機,電腦)等。
2.1 計算機網路
電腦對於我們來說十分熟悉啦,在多臺聯網電腦之前,我們可以聊天,影片,郵件交流,也可以透過不同的媒介平臺進行互通,所有線上的使用者裝置之間,像一張大網串聯起來,互通有無,這就是計算機的網路!
如上圖,是一張概括的網路拓撲簡圖,非常形象易懂的囊括了我們當下的網際網路世界。其中,使用者裝置如手機,電腦這些用於訪問網路資源,如看劇,重新整理聞,而網路交換機則是讓手機能上網的橋樑,用來連線區域網內的裝置和路由器,而路由器呢,主要工作是實現不同網路之間的路由,可以聯通網際網路,而為了防止一些為經過授權的訪問侵入裝置,裝置的網路中均設有一道防火牆,用於攔截未授權請求;而網際網路呢,則是全球互通互相的一個資訊資源網,伺服器無需多談,用於託管網路應用和資料的處理和儲存站。
那麼,看到這裡我們有了這樣一個疑問,全球不同國家和地區存在著不同的區域網,遵循著不同的網路協議,是怎麼做到全球互通網際網路的呢?偉大的先輩們早就考慮到這點啦,因此,最早制定規範的那幫人,就互聯達成了全球性的協議規範,那就是TCP/IP協議,下面我們聊到協議時會說。
2.2 IP
對於IP來說,大家也很熟悉,我們在日常上網的過程中,所說的網址,其實主要就是這個IP(Internet Protocol),中文譯作國際互聯協議。它像一個身份證號一樣,唯一的標識著網路中的一個介面,任何聯入到網際網路中的計算機都只要擁有一個IP地址。
目前IP分為IPv4和IPv6,因為v4版本採用32位地址,算起來越42億個地址,目前已經用盡,所以推出了v6版本,採用128位地址,340萬億億億億個地址,對,你沒看錯,2的128次方個地址就是這麼多,這個數字是人類滅絕了都用不完的。
一個特殊的 IP 地址,稱之為本機地址,它總是127.0.0.1
IPv4(如:101.302.88.22)
IPv6 (如:2001:0DA8:100A:0000:0000:1020:F2F3:1428)