|名詞定義|
網絡程式設計指的是多台主機之間的資料通訊操作。
網絡的核心定義在于:有兩台以上的電腦就稱為網絡。網絡連接配接的目的不僅僅是為了進行電腦的串聯,更多的情況下是為了進行彼此之間的資料通訊,而在通訊的實作上就産生了一系列的處理協定:IP、TCP、UDP等等,也就是說所謂的網絡程式設計,實際上實作的就是一個資料的通訊操作而已,隻不過這個通訊操作需要分為用戶端和服務端。
網絡程式的開發的兩種模型:
1、C/S(Client/Server、用戶端與服務端):要開發出兩套程式,一套程式為用戶端,另外一套為服務端,如果現在服務端發生了改變之後用戶端也應該進行更新處理,這種開發可以由開發者自定義傳輸協定,并且使用一些比較私密的端口,是以安全性是比較高的,但是開發與維護成本比較高;
特點
服務端的特征:
被動的角色(從)。
等待來自用戶端的請求。
處理請求并傳回結果。
用戶端的特征:
主動的角色(主)。
發送請求。
等待直到收到響應。
C/S分為兩種開發:TCP(可靠的資料連接配接)、UDP(不可靠的資料連接配接);
TCP的程式開發是網絡程式的最基本的開發模型,其核心的特點是使用兩個類實作資料的互動處理:ServerSocket(服務端)、Socket(用戶端)。ServerSocket的主要目的是設定伺服器的監聽端口,而Socket需要指明要連接配接的伺服器位址和端口。
資料報發送與接收(UDP),基于資料報的網絡程式設計實作,如果想要實作UDP程式需要兩個類:DatagramPacket(資料内容)、DatagramSocket(網絡的發送與接收)。資料報就好比發送的短消息一樣,用戶端是否收到與發送者無關。
UDP發送的資料一定是不可靠的,但是TCP由于需要保證可靠的連接配接,是以所需要的伺服器資源就越多。
2、B/S(Browser/Server、浏覽器與服務端):隻開發一套服務端的程式,而後利用浏覽器作為用戶端進行通路,這種開發與維護的成本較低(隻有一套程式),但是由于其使用的是公共的HTTP協定并且使用的公共的80端口,是以其安全性相對較差,現在的開發基本上以“B/S”結構為主。
|參考資料|
[1] 阿裡雲大學Java視訊課程
[2] Java開發者
[3] 維基百科