版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第1章緒論
1.1計(jì)算機(jī)網(wǎng)絡(luò)1.2網(wǎng)絡(luò)編程1.3Java與網(wǎng)絡(luò)編程
1.1計(jì)?算?機(jī)?網(wǎng)?絡(luò)
1.1.1計(jì)算機(jī)網(wǎng)絡(luò)的概念
計(jì)算機(jī)網(wǎng)絡(luò)是通過(guò)電纜、電話線或無(wú)線通信將兩臺(tái)以上的計(jì)算機(jī)互連起來(lái)構(gòu)成的集合,其準(zhǔn)確定義是:由若干臺(tái)擁有獨(dú)立處理能力的計(jì)算機(jī),通過(guò)通信設(shè)備連接,且在通信軟件支持下可實(shí)現(xiàn)信息傳輸與交換的系統(tǒng)集合。其簡(jiǎn)單的定義是:一些互相連接的、自治的計(jì)算機(jī)的集合。最簡(jiǎn)單的網(wǎng)絡(luò)由兩臺(tái)計(jì)算機(jī)設(shè)備構(gòu)成,進(jìn)行兩點(diǎn)一線的通信;最龐大的網(wǎng)絡(luò)是由多個(gè)計(jì)算機(jī)網(wǎng)絡(luò)通過(guò)路由器等網(wǎng)絡(luò)設(shè)備連接而成的因特網(wǎng),因此因特網(wǎng)也被稱為“網(wǎng)絡(luò)的網(wǎng)絡(luò)”,如圖1-1所示。圖1-1互聯(lián)網(wǎng)1.1.2TCP/IP體系結(jié)構(gòu)
計(jì)算機(jī)網(wǎng)絡(luò)由多個(gè)互連的網(wǎng)絡(luò)節(jié)點(diǎn)組成,節(jié)點(diǎn)之間要不斷地交換數(shù)據(jù)和控制信息,就必須做到有條不紊地交換數(shù)據(jù),并遵循一整套合理而嚴(yán)謹(jǐn)?shù)慕Y(jié)構(gòu)化管理體系。計(jì)算機(jī)網(wǎng)絡(luò)是按照高度結(jié)構(gòu)化設(shè)計(jì)方法,采用功能分層的原理來(lái)實(shí)現(xiàn)的,網(wǎng)絡(luò)體系(NetworkArchitecture)為了完成計(jì)算機(jī)間的通信合作,把每臺(tái)計(jì)算機(jī)互連的功能劃分成有明確定義的層次,并規(guī)定了同層次進(jìn)程通信的協(xié)議及相鄰層次之間的接口與服務(wù),從而形成網(wǎng)絡(luò)體系。不同廠家生產(chǎn)的計(jì)算機(jī)系統(tǒng)以及不同網(wǎng)絡(luò)之間要實(shí)現(xiàn)數(shù)據(jù)通信,就必須遵循相同的網(wǎng)絡(luò)體系結(jié)構(gòu)模型,否則異種計(jì)算機(jī)就無(wú)法連接成網(wǎng)絡(luò),這種共同遵循的網(wǎng)絡(luò)體系結(jié)構(gòu)模型就是國(guó)際標(biāo)準(zhǔn)——開(kāi)放系統(tǒng)互連參考模型(OpenSystemInterface/ReferenceModel,OSI/RM),這是一種七層的體系結(jié)構(gòu)。在Internet中,網(wǎng)絡(luò)通信協(xié)議使用的是傳輸控制協(xié)議/因特網(wǎng)互聯(lián)協(xié)議(TransmissionControlProtocol/InternetProtocol,TCP/IP),這是一種四層的體系結(jié)構(gòu)。TCP/IP定義了電子設(shè)備(比如計(jì)算機(jī))如何連入互聯(lián)網(wǎng),以及數(shù)據(jù)如何在設(shè)備之間傳輸?shù)臉?biāo)準(zhǔn)。兩個(gè)網(wǎng)絡(luò)體系結(jié)構(gòu)的對(duì)比如圖1-2所示。圖1-2TCP/IP結(jié)構(gòu)與OSI/RM結(jié)構(gòu)對(duì)比在TCP/IP中,應(yīng)用層為協(xié)議的最高層,應(yīng)用程序與該層協(xié)議相配合發(fā)送或接收數(shù)據(jù)。TCP/IP協(xié)議集在應(yīng)用層上有遠(yuǎn)程登錄協(xié)議(Telnet)、文件傳輸協(xié)議(FTP)、電子郵箱協(xié)議(SMTP)、域名系統(tǒng)(DNS)、超文本傳輸協(xié)議(HTTP)等,它們構(gòu)成了TCP/IP基本應(yīng)用程序的基礎(chǔ)。
傳輸層上的主要協(xié)議是TCP(TransmissionControlProtocol,傳輸控制協(xié)議)和。正如網(wǎng)絡(luò)層控制著主機(jī)之間的數(shù)據(jù)傳遞,而傳輸層控制著那些將要進(jìn)入網(wǎng)絡(luò)層的數(shù)據(jù)。TCP與UDP兩個(gè)協(xié)議是管理這些數(shù)據(jù)的兩種方式:TCP是一個(gè)基于連接的協(xié)議,UDP則是面向無(wú)連接服務(wù)的管理方式的協(xié)議。由于UDP不使用很繁瑣的流控制或錯(cuò)誤恢復(fù)機(jī)制,只充當(dāng)數(shù)據(jù)報(bào)的發(fā)送者和接收者,因此,UDP比TCP簡(jiǎn)單。網(wǎng)絡(luò)層中的協(xié)議主要有IP、ICMP、IGMP等,由于它包含了IP協(xié)議模塊,因而它是所有基于TCP/IP協(xié)議網(wǎng)絡(luò)的核心。在網(wǎng)絡(luò)層中,IP模塊完成大部分功能。ICMP和IGMP以及其他支持IP的協(xié)議幫助IP完成特定的任務(wù),如傳輸差錯(cuò)控制信息以及主機(jī)和路由器之間的控制電文等。網(wǎng)絡(luò)層掌管著網(wǎng)絡(luò)中主機(jī)間的信息傳輸。
網(wǎng)絡(luò)接口層實(shí)現(xiàn)與通信介質(zhì)的連接,完成數(shù)據(jù)在網(wǎng)絡(luò)中的發(fā)送和接收,向上層協(xié)議屏蔽通信的詳細(xì)過(guò)程。
在本書中所涉及的Java網(wǎng)絡(luò)編程以TCP/IP網(wǎng)絡(luò)體系結(jié)構(gòu)為基礎(chǔ)。
1.2網(wǎng)絡(luò)編程
1.2.1網(wǎng)絡(luò)編程的概念
網(wǎng)絡(luò)編程就是用一門編程語(yǔ)言結(jié)合相應(yīng)的網(wǎng)絡(luò)接口API,編寫關(guān)于網(wǎng)絡(luò)信息傳輸方面的程序的過(guò)程。如在WindowsXP環(huán)境下,利用C++?語(yǔ)言,根據(jù)Microsoft提供的Winsock2網(wǎng)絡(luò)編程接口,編寫網(wǎng)絡(luò)程序;又如使用Java語(yǔ)言,引用類庫(kù)和java.io類庫(kù)等相關(guān)類庫(kù)包,編寫網(wǎng)絡(luò)程序。各種程序設(shè)計(jì)語(yǔ)言都能實(shí)現(xiàn)網(wǎng)絡(luò)編程。
根據(jù)TCP/IP的分層體系結(jié)構(gòu),網(wǎng)絡(luò)編程可劃分為如圖1-3所示的層次。圖1-3網(wǎng)絡(luò)編程的層次劃分圖1-3中,用戶功能設(shè)計(jì)包含了應(yīng)用層和傳輸層兩層在內(nèi)的應(yīng)用軟件設(shè)計(jì),通常根據(jù)應(yīng)用軟件中傳輸數(shù)據(jù)的要求不同以及用戶需求,選擇適當(dāng)?shù)膫鬏攲訁f(xié)議TCP或者UDP進(jìn)行通信,主要完成某種特定的應(yīng)用,Java網(wǎng)絡(luò)編程集中在此。
通信功能設(shè)計(jì),主要包括傳輸層、網(wǎng)絡(luò)層和網(wǎng)絡(luò)接口層,完成數(shù)據(jù)傳輸安全、數(shù)據(jù)傳輸效率等功能,主要使用C/C++?實(shí)現(xiàn)。
在TCP/IP體系結(jié)構(gòu)中,應(yīng)用層協(xié)議與傳輸層協(xié)議的對(duì)應(yīng)關(guān)系如表1-1所示。
1.2.2C/S架構(gòu)和B/S架構(gòu)
C/S架構(gòu)是軟件應(yīng)用架構(gòu),通過(guò)它可以充分發(fā)揮網(wǎng)絡(luò)兩端的硬件環(huán)境優(yōu)勢(shì),將任務(wù)合理分配到客戶機(jī)端和服務(wù)器端來(lái)實(shí)現(xiàn),降低系統(tǒng)網(wǎng)絡(luò)通信帶來(lái)的開(kāi)銷。C/S架構(gòu)是一種典型的兩層軟件應(yīng)用架構(gòu),也被稱為是胖客戶端(FatClient)架構(gòu),原因在于客戶機(jī)端需要實(shí)現(xiàn)絕大多數(shù)的業(yè)務(wù)邏輯和界面展示,客戶端包含一個(gè)或多個(gè)在用戶的電腦上運(yùn)行的程序。該類應(yīng)用架構(gòu)中,作為客戶端的部分需要承受很大的計(jì)算壓力,因?yàn)轱@示邏輯和事務(wù)處理都包含在其中,通過(guò)與數(shù)據(jù)庫(kù)的交互(通常使用SQL語(yǔ)句或存儲(chǔ)過(guò)程來(lái)實(shí)現(xiàn))來(lái)達(dá)到數(shù)據(jù)的永久化存儲(chǔ),以此滿足實(shí)際應(yīng)用項(xiàng)目的需要。服務(wù)器端有兩種:數(shù)據(jù)庫(kù)服務(wù)器端,客戶機(jī)端直接連接服務(wù)器端的數(shù)據(jù)庫(kù)資源;Socket服務(wù)器端,服務(wù)器端的程序通過(guò)Socket與客戶端的程序通信,實(shí)現(xiàn)數(shù)據(jù)交換。采用C/S架構(gòu)的常見(jiàn)軟件包括管理信息系統(tǒng)、實(shí)時(shí)消息軟件、娛樂(lè)軟件等。C/S架構(gòu)如圖1-4所示。圖1-4C/S架構(gòu)
B/S架構(gòu)是Web興起后的一種軟件應(yīng)用架構(gòu),Web瀏覽器是客戶端基礎(chǔ)的應(yīng)用軟件。這種模式統(tǒng)一客戶端,將軟件應(yīng)用系統(tǒng)功能實(shí)現(xiàn)的核心部分集中到服務(wù)器上,簡(jiǎn)化系統(tǒng)的開(kāi)發(fā)、維護(hù)和使用。其中,瀏覽器指的是Web瀏覽器,極少數(shù)事務(wù)邏輯在瀏覽器端實(shí)現(xiàn),但主要事務(wù)邏輯在服務(wù)器端實(shí)現(xiàn);由于客戶端承擔(dān)的邏輯很少,因此被稱為瘦客戶端(ThinClient)。通常,由Browser客戶端、WebApp服務(wù)器端和DB端構(gòu)成三層架構(gòu)。B/S架構(gòu)中,顯示邏輯交給了Web瀏覽器,將事務(wù)處理邏輯放在了WebApp上,這樣就避免了龐大的胖客戶端,減少了客戶端的壓力。
B/S架構(gòu)如圖1-5所示。圖1-5B/S架構(gòu)1.2.3C/S架構(gòu)與B/S架構(gòu)的區(qū)別
在為應(yīng)用軟件選擇應(yīng)用架構(gòu)時(shí),可以參考以下C/S與B/S的區(qū)別:
(1)硬件環(huán)境不同。
(2)處理問(wèn)題不同。
(3)信息流不同。
(4)對(duì)安全要求不同。
(5)對(duì)程序架構(gòu)不同。
(6)軟件重用性不同。
(7)用戶接口不同。
(8)系統(tǒng)維護(hù)不同。
(9)用戶端表現(xiàn)不同。1.2.4P2P的概念
C/S和B/S架構(gòu)中,都是以服務(wù)器作為中心進(jìn)行應(yīng)用構(gòu)架布局的。伴隨著計(jì)算機(jī)網(wǎng)絡(luò)的迅速發(fā)展,客戶機(jī)硬件設(shè)備能力的提高,接入網(wǎng)絡(luò)用戶人數(shù)的增多,以服務(wù)器為核心的模式逐漸不能滿足所有用戶的需求。例如,一個(gè)提供視頻的服務(wù)器,或者提供文件下載的服務(wù)器,無(wú)法應(yīng)對(duì)眾多用戶的同時(shí)連接請(qǐng)求。于是,產(chǎn)生了對(duì)等技術(shù)。這是一種網(wǎng)絡(luò)通信技術(shù),它依賴于網(wǎng)絡(luò)中參與者的計(jì)算能力和帶寬,而不是把所有需求都聚集在較少的幾臺(tái)服務(wù)器上。對(duì)等技術(shù)又被稱為“點(diǎn)對(duì)點(diǎn)”(PeertoPeer,P2P)技術(shù),它允許各個(gè)參與者之間相互分享數(shù)據(jù)。P2P模式如圖1-6所示。圖1-6P2P模式伴隨著P2P技術(shù)研究的深入,有斷言說(shuō)對(duì)等聯(lián)網(wǎng)是只讀網(wǎng)絡(luò)的終結(jié),它使客戶機(jī)擺脫了服務(wù)器的束縛,用戶采用新的方式參與互聯(lián)網(wǎng)。其實(shí),P2P不是一個(gè)新思想,從某些角度看,它甚至是創(chuàng)建互聯(lián)網(wǎng)的最初最基本的思想。因?yàn)?,互?lián)網(wǎng)的初衷就是使接入網(wǎng)絡(luò)的設(shè)備實(shí)現(xiàn)資源共享。
P2P的常見(jiàn)應(yīng)用有文件下載,例如eMule、迅雷、BitTorrent都是用于多點(diǎn)下載的P2P軟件。還有各類網(wǎng)絡(luò)娛樂(lè)應(yīng)用,如在線點(diǎn)播、視頻游戲等。
P2P的主要缺點(diǎn)是在為多個(gè)連接服務(wù)時(shí),對(duì)共享磁盤文件的讀、寫同時(shí)進(jìn)行,對(duì)硬盤損傷比較大,還有對(duì)內(nèi)存占用較多,影響整機(jī)速度。
1.3Java與網(wǎng)絡(luò)編程
1.3.1Java語(yǔ)言
Java語(yǔ)言本身是基于虛擬機(jī)(VirtualMachine,VM)的,程序可以跨各種平臺(tái)運(yùn)行,擁有較好的可移植性,更適合網(wǎng)絡(luò)時(shí)代的要求,Java程序的編譯及運(yùn)行圖如圖1-7所示。
從圖1-7可以看到,Java源程序文件經(jīng)編譯生成字節(jié)碼文件,該字節(jié)碼文件通過(guò)網(wǎng)絡(luò)下載到運(yùn)行終端,經(jīng)過(guò)校驗(yàn)正確,由終端的Java虛擬機(jī)解釋執(zhí)行,從而實(shí)現(xiàn)“一次編寫,到處執(zhí)行”。圖1-7Java程序編譯及運(yùn)行圖1.3.2Java網(wǎng)絡(luò)編程
Java作為一門單純的編程語(yǔ)言和網(wǎng)絡(luò)沒(méi)有直接關(guān)系,只有掌握了Java的網(wǎng)絡(luò)類庫(kù)(和java.io),才能開(kāi)始網(wǎng)絡(luò)編程。.net類庫(kù)被Java用于封裝網(wǎng)絡(luò)相關(guān)類;.io類庫(kù)被Java用于封裝數(shù)據(jù)流的輸入和輸出類。
在本書中,將依次介紹Java與網(wǎng)絡(luò)編程相關(guān)的知識(shí),包括:
與網(wǎng)絡(luò)編程輸入/輸出相關(guān)的類,包括FileInputStream/
FileOutputStream實(shí)現(xiàn)以字節(jié)流的形式讀寫文件、ObjectInputStream/ObjectOutputStream以對(duì)象流的形式處理數(shù)據(jù)、Zip/ZipEntry進(jìn)行壓縮文件的處理、XML實(shí)現(xiàn)跨平臺(tái)的數(shù)據(jù)交換等內(nèi)容。與資源定位相關(guān)的類,包括InetAddress實(shí)現(xiàn)目標(biāo)主機(jī)的名稱與IP地址的對(duì)應(yīng)、URL類進(jìn)行網(wǎng)絡(luò)資源的定位;
與TCP相關(guān)的類,包括Socket建立TCP客戶端套接字,實(shí)現(xiàn)發(fā)起對(duì)指定服務(wù)器端連接和承擔(dān)數(shù)據(jù)通信任務(wù)、與ServerSocket實(shí)現(xiàn)監(jiān)聽(tīng)客戶端連接請(qǐng)求和實(shí)現(xiàn)連接等內(nèi)容;
與UDP相關(guān)的類,包括DatagramSocket建立UDP套接字、DatagramPac
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版簡(jiǎn)單的維修合同書協(xié)議
- 《糖尿病中醫(yī)辨治》課件
- 我的家鄉(xiāng)蚌埠
- Bell態(tài)與GHZ態(tài)在噪聲信道中的幾何失協(xié)研究
- 井筒三維檢測(cè)數(shù)據(jù)壓縮重構(gòu)關(guān)鍵技術(shù)研究
- 我的家鄉(xiāng)銅陵
- 量子系統(tǒng)相互作用理論研究與應(yīng)用趨勢(shì)
- 地震檢波器信號(hào)解調(diào)技術(shù)探討
- 實(shí)時(shí)圖像聲吶信號(hào)處理技術(shù)解析
- 2微米波段激光無(wú)序晶體特性分析
- 食材配送投標(biāo)服務(wù)方案
- 建筑施工現(xiàn)場(chǎng)農(nóng)民工維權(quán)告示牌
- 醫(yī)療醫(yī)學(xué)醫(yī)生護(hù)士工作PPT模板
- 口腔門診規(guī)章制度.-口腔診所12個(gè)規(guī)章制度
- 2022年版物理課程標(biāo)準(zhǔn)的特點(diǎn)探討與實(shí)施建議
- 幼兒園班級(jí)安全教育活動(dòng)計(jì)劃表
- ppt模板:創(chuàng)意中國(guó)風(fēng)古風(fēng)水墨山水通用模板課件
- 紡紗學(xué)-ppt課件
- (高清版)嚴(yán)寒和寒冷地區(qū)居住建筑節(jié)能設(shè)計(jì)標(biāo)準(zhǔn)JGJ26-2018
- 項(xiàng)目經(jīng)理績(jī)效考核評(píng)分表
- .運(yùn)維服務(wù)目錄
評(píng)論
0/150
提交評(píng)論