Java編程那些事兒101——網路編程概述

來源:互聯網
上載者:User

第十三章 網路編程

網路編程對於很多的初學者來說,都是很嚮往的一種編程技能,但是很多的初學者卻因為很長一段時間無法進入網路編程的大門而放棄了對於該部分技術的學習。

在學習網路編程以前,很多初學者可能覺得網路編程是比較複雜的系統工程,需要瞭解很多和網路相關的基礎知識,其實這些都不是很必需的。首先來問一個問題:你會打手機嗎?很多人可能說肯定會啊,不就是按按電話號碼,撥打到電話嘛,很簡單的事情啊!其實初學者如果入門網路編程的話也可以做到這麼簡單!

網路編程就是在兩個或兩個以上的裝置(例如電腦)之間傳輸資料。程式員所作的事情就是把資料發送到指定的位置,或者接收到指定的資料,這個就是狹義的網路編程範疇。在發送和接收資料時,大部分的程式設計語言都設計了專門的API實現這些功能,程式員只需要調用即可。所以,基礎的網路編程可以和打電話一樣簡單。

下面就開始Java語言的網路編程技術學習吧。

13.1 網路概述

網路編程技術是當前一種主流的編程技術,隨著連網趨勢的逐步增強以及網路應用程式的大量出現,所以在實際的開發中網路編程技術獲得了大量的使用。本章中以淺顯的基礎知識說明和實際的案例使廣大初學者能夠進入網路編程技術的大門,至於以後的實際修行就要閱讀進階的書籍以及進行大量的實際練習。

13.1.1 電腦網路概述

網路編程的實質就是兩個(或多個)裝置(例如電腦)之間的資料轉送。

按照電腦網路的定義,通過一定的物理裝置將處於不同位置的電腦串連起來組成的網路,這個網路中包含的裝置有:電腦、路由器、交換器等等。

其實從軟體編程的角度來說,對於物理裝置的理解不需要很深刻,就像你打電話時不需要很熟悉通訊網路的底層實現是一樣的,但是當深入到網路編程的底層時,這些基礎知識是必須要補的。

路由器和交換器組成了核心的電腦網路,電腦只是這個網路上的節點以及控制等,通過光纖、網線等串連將裝置串連起來,從而形成了一張巨大的電腦網路。

網路最主要的優勢在於共用:共用裝置和資料,現在共用裝置最常見的是印表機,一個公司一般一個印表機即可,共用資料就是將大量的資料存放區在一組機器中,其它的電腦通過網路訪問這些資料,例如網站、銀行伺服器等等。

如果需要瞭解更多的網路硬體基礎知識,可以閱讀《電腦網路》教材,對於基礎進行強化,這個在基礎學習階段不是必須的,但是如果想在網路編程領域有所造詣,則是一個必須的基本功。

對於網路編程來說,最主要的是電腦和電腦之間的通訊,這樣首要的問題就是如何找到網路上的電腦呢?這就需要瞭解IP地址的概念。

為了能夠方便的識別網路上的每個裝置,網路中的每個裝置都會有一個唯一的數位識別碼,這個就是IP地址。在電腦網路中,現在命名IP地址的規定是IPv4協議,該協議規定每個IP地址由4個0-255之間的數字組成,例如10.0.120.34。每個接入網路的電腦都擁有唯一的IP地址,這個IP地址可能是固定的,例如網路上各種各樣的伺服器,也可以是動態,例如使用ADSL撥接的寬頻使用者,無論以何種方式獲得或是否是固定的,每個電腦在連網以後都擁有一個唯一的合法IP地址,就像每個手機號碼一樣。

但是由於IP地址不容易記憶,所以為了方便記憶,有創造了另外一個概念——網域名稱(Domain Name),例如sohu.com等。一個IP地址可以對應多個網域名稱,一個網域名稱只能對應一個IP地址。網域名稱的概念可以類比手機中的通訊錄,由於手機號碼不方便記憶,所以添加一個姓名標識號碼,在實際撥打到電話時可以選擇該姓名,然後撥打即可。

在網路中傳輸的資料,全部是以IP地址作為地址標識,所以在實際傳輸資料以前需要將網域名稱轉換為IP地址,實現這種功能的伺服器稱之為DNS伺服器,也就是通俗的說法叫做網域名稱解析。例如當使用者在瀏覽器輸入欄位名時,瀏覽器首先請求DNS伺服器,將網域名稱轉換為IP地址,然後將轉換後的IP地址反饋給瀏覽器,然後再進行實際的資料轉送。

當DNS伺服器正常工作時,使用IP地址或網域名稱都可以很方便的找到電腦網路中的某個裝置,例如伺服器電腦。當DNS不正常工作時,只能通過IP地址訪問該裝置。所以IP地址的使用要比網域名稱通用一些。

IP地址和網域名稱很好的解決了在網路中找到一個電腦的問題,但是為了讓一個電腦可以同時運行多個網路程式,就引入了另外一個概念——連接埠(port)。

在介紹連接埠的概念以前,首先來看一個例子,一般一個公司前台會有一個電話,每個員工會有一個分機,這樣如果需要找到這個員工的話,需要首先撥打前台總機,然後轉該分機號即可。這樣減少了公司的開銷,也方便了每個員工。在該樣本中前台總機的電話號碼就相當於IP地址,而每個員工的分機號就相當於連接埠。

有了連接埠的概念以後,在同一個電腦中每個程式對應唯一的連接埠,這樣一個電腦上就可以通過連接埠區分發送給每個連接埠的資料了,換句話說,也就是一個電腦上可以並發運行多個網路程式,而不會在互相之間產生幹擾。

在硬體上規定,連接埠的號碼必須位於0-65535之間,每個連接埠唯一的對應一個網路程式,一個網路程式可以使用多個連接埠。這樣一個網路程式運行在一台計算上時,不管是用戶端還是伺服器,都是至少佔用一個連接埠進行網路通訊。在接收資料時,首先發送給對應的電腦,然後電腦根據連接埠把資料轉寄給對應的程式。

有了IP地址和連接埠的概念以後,在進行網路通訊交換時,就可以通過IP地址尋找到該台電腦,然後通過連接埠標識這台電腦上的一個唯一的程式。這樣就可以進行網路資料的交換了。

但是,進行網路編程時,只有IP地址和連接埠的概念還是不夠的,下面就介紹一下基礎的網路編程相關的軟體基礎知識。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.