第1章 網(wǎng)絡程序設計_第1頁
第1章 網(wǎng)絡程序設計_第2頁
第1章 網(wǎng)絡程序設計_第3頁
第1章 網(wǎng)絡程序設計_第4頁
第1章 網(wǎng)絡程序設計_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

第1章網(wǎng)絡程序設計1頁主要內(nèi)容選擇JAVA語言網(wǎng)絡常識網(wǎng)絡程序設計簡介網(wǎng)絡程序設計技術Java支持的網(wǎng)絡程序設計移動網(wǎng)絡Java安全性常識本章小結實踐檢驗2頁1-1選擇JAVA語言互聯(lián)網(wǎng)在世界上蓬勃發(fā)展,Sun公司發(fā)現(xiàn)Oak語言所具有的跨平臺、面向對象、安全性高等特點非常符合互聯(lián)網(wǎng)的需要,于是改進了該語言的設計,造就了一代成功的編程語言。3頁1-2網(wǎng)絡常識網(wǎng)絡體系結構協(xié)議OSI參考模型命名與路由Internet地址4頁1-2-1網(wǎng)絡體系結構網(wǎng)絡中的設備既可以在同一個房間內(nèi),又可以分布于整幢大樓。或者通過電話線、微波等類似設備,分布于更遠的距離。通過使用一些遠距離介質(zhì),網(wǎng)絡甚至可以分布于整個世界。5頁1-2-2協(xié)議“協(xié)議”通常是指兩個或更多的計算機之間,為交換信息所必須遵循的一組規(guī)則。它描述了計算機發(fā)送信息所應具有的格式,以及對收到的信息應作出何種響應。正是有了協(xié)議的存在,使得開發(fā)人員能夠使用不同的程序設計語言,以不同的數(shù)據(jù)結構和命令代碼,獨立地開發(fā)和實現(xiàn)分布式應用程序的不同部分。6頁1-2-3OSI參考模型OSI協(xié)議層7頁1-2-3OSI參考模型應用層這一層負責發(fā)送數(shù)據(jù)給用戶。它主要定義了一個到服務的接口。此層協(xié)議有:文件傳輸協(xié)議(FTP)、遠程登錄(Telnet)和簡單郵件傳輸協(xié)議(SMTP)。表示層實現(xiàn)此層的協(xié)議負責在網(wǎng)絡的表示層傳輸數(shù)據(jù),它獨立于底層的平臺。如果要進行加密,將在此層完成。此層的協(xié)議有:XDR和ASN.1。會話層此層負責在兩個進程間建立通信,以及進行錯誤恢復。需要注意的是,在無連接通信時,不需要此層。傳輸層在這一層,信息被編址到通信端口。此層既可以用于無連接的情況(如UDP),又可以用于面向連接的情況(TCP),這一點將在第2章進一步介紹。網(wǎng)絡層兩臺計算機將在此層進行數(shù)據(jù)包的傳遞。這一層也負責進行路由(廣域網(wǎng)中如此,局域網(wǎng)中不需路由)。此層協(xié)議有:IP和X.25。數(shù)據(jù)鏈路層此層負責兩臺計算機間包的容錯傳輸。物理層此層包括驅動網(wǎng)絡的線路及硬件等。8頁1-2-4命名與路由當一臺主機要向/從處于同一個網(wǎng)絡或不同網(wǎng)絡中的另一臺主機發(fā)送/接收包時就要用到IP地址。如果該主機向處于同一個網(wǎng)絡中的主機發(fā)送包,那么只要用主機標識符來定位即可;如果該主機向處于不同網(wǎng)絡中的另一臺主機發(fā)送包,則要用主機標識符和網(wǎng)絡標識符來定位此外部主機。這個定位網(wǎng)絡和主機并發(fā)送包給它們的過程就叫做路由(Routing)。在網(wǎng)絡中,一個路由器包含了一個IP層,來實現(xiàn)路徑的選擇,以及發(fā)送包到它們的目的地。當數(shù)據(jù)被路由后,它在網(wǎng)絡的傳輸過程中有可能丟失,所以底層的協(xié)議應該能夠保證數(shù)據(jù)起始點到目的地的正確傳遞。9頁1-2-5Internet地址Internet地址分為5類,分別是A、B、C、D和E。每類地址各不相同,各自適應不同大小組織的需要。例如,A類地址用于超過65、536臺主機的大型網(wǎng)絡,B類地址用于超過256臺但少于65536臺主機的中等規(guī)模的網(wǎng)絡,C類地址用于最多256臺主機的網(wǎng)絡。D類地址被用于在一些Internet主機間進行多點傳遞,其范圍為~55。E類地址被預留,以便將來使用,其范圍為~55。10頁A類地址11頁1-3網(wǎng)絡程序設計簡介

IP以兩種形式存在著:DNS(域名服務)形式。此外,IP地址在內(nèi)部都表達成一個由32個二進制位(bit)構成的數(shù)字,所以IP地址的每一組數(shù)字都不能超過255。12頁1-3網(wǎng)絡程序設計簡介該程序只在Windows95中進行了測試,但大家可以依次進入自己的“開始”、“設置”、“控制面板”、“網(wǎng)絡”,然后進入“標識”選項卡。其中,“計算機名稱”就是應在命令行中輸入的內(nèi)容。13頁1-3網(wǎng)絡程序設計簡介//:WhoAmI.java//Findsoutyournetworkaddresswhenyou're//connectedtotheInternet.packagec15;import.*;publicclassWhoAmI{publicstaticvoidmain(String[]args)throwsException{if(args.length!=1){System.err.println("Usage:WhoAmIMachineName");System.exit(1);}InetAddressa=InetAddress.getByName(args[0]);System.out.println(a);}}///:~14頁1-4網(wǎng)絡程序設計技術SocketRPC網(wǎng)絡程序設計特性15頁1-4-1Socket信息在一個進程的Socket和另一個進程的Socket間,以報文傳輸?shù)男问竭M行交換。在發(fā)送端Socket,報文以隊列的形式等待,直到網(wǎng)絡協(xié)議傳輸它們。當報文到達后,它們又在接收端的Socket排隊,等待接收進程以一定的系統(tǒng)調(diào)用來接收它們。在客戶/服務器模式下,服務器是監(jiān)聽請求的進程,客戶是發(fā)送請求的進程。一旦服務器進程接收到了請求,它就試圖去處理該請求,并且將輸出發(fā)送給客戶。16頁1-4-2RPCRPC(遠程過程調(diào)用)誕生于20世紀70年代,它將計算機間的通信,看作是一個計算機調(diào)用另一個計算機的過程。在RPC方式中,所有報文都通過網(wǎng)絡傳遞,每一個既可能請求,也可能應答一個過程的動作。17頁基于RPC的客戶/服務器計算示例18頁1-4-3網(wǎng)絡程序設計特性多用戶應用程序電子郵件(E–mail)是多用戶應用程序的一個很好的例子。通過互聯(lián)的單機系統(tǒng),分布式計算使這樣的應用程序成為可能。資源共享分布式計算使一個組織能夠更好地利用物理資源。例如,辦公人員可以共用一臺價格昂貴的彩色打印機??缮壭杂捎诜植际较到y(tǒng)由許多組件構建而成,而且很有可能根據(jù)需要增加更多的組件,所以要具有可升級性。分布式系統(tǒng)可能要用于解決各種大小問題,所以要有隨問題大小變化的能力。有效性在不同環(huán)境下,多平臺能夠得以應用,以解決每一個計算機的問題。容錯性和實用性分布式應用程序的各組件,被配置為能夠解決大多數(shù)的錯誤類型。透明性這個系統(tǒng)感覺上應為一個整體,而不是一系列獨立組件的集合。這樣,本地和遠程對象可以使用同樣的操作進行訪問,而不需要知道它們的位置。19頁1-5Java支持的網(wǎng)絡程序設計20頁1-5Java支持的網(wǎng)絡程序設計Socket通過Socket通信,Java支持面向連接(TCP)和無連接(UDP)的協(xié)議。在本書的第一部分,將介紹任何使用Socket編寫的分布式應用程序。RMI遠程方法調(diào)用(RMI)允許程序編寫分布式應用程序,在這個分布式應用程序中,遠程Java對象的方法可以被運行于網(wǎng)絡中不同主機上的Java虛擬機所調(diào)用。在這種模式下,參與通信的所有分布的對象必須用Java語言實現(xiàn)。如果它們以其他語言實現(xiàn)的話,Java對象就無法與網(wǎng)絡上的其他對象進行通信。本書第二部分將討論RMI,以及任何使用它去開發(fā)分布式應用程序。有關RMI的更多信息,請瀏覽/products/jdk/rmi。JavaIDLJavaIDL讓程序員能夠用接口定義語言(IDL)定義遠程接口(IDL是OMG組織定義的工業(yè)標準)。一旦程序員使用IDL定義了遠程接口,那就可以使用特定的編譯器編譯該定義,以產(chǎn)生Java接口定義、客戶樁(stub)和服務器構架(skeleton)。JavaIDL允許一個Java客戶透明地調(diào)用駐留在遠程服務器上的IDL對象,并且允許介紹CORBA,以及如何使用VisiBrokerforJava——一個完整的CORBA實現(xiàn)——開發(fā)分布式應用程序。有關JavaIDL的更多信息,請瀏覽/products/jdk/idl。21頁1-5Java支持的網(wǎng)絡程序設計JavaSpacesJavaSpaces是一種嘗試,它想要幫助分布式應用程序開發(fā)者,以方便簡單、快速的統(tǒng)一機制,去共享、協(xié)調(diào)、傳送網(wǎng)絡中分布的資源、服務和對象。JavaSpaces有它自己的私有元組空間(tuplespaces),其建立于著名的Linda原型的元組空間之上。這一原型最初是為并行處理系統(tǒng)開發(fā)的,作為一個全球通信的緩沖。有關JavaSpaces的更多信息,請瀏覽/products/javaspaces。JiniJini是SunMicrosystems的一個R&D項目,它擴展了Java的能力,使Java能夠支持更為廣泛的網(wǎng)絡設備。Sun設想使Jini成為一個系統(tǒng),在此系統(tǒng)中,人們使用網(wǎng)絡設備和服務,就像使用今天的電話一樣簡單。有關Jini的更多信息,請瀏覽/software/jini。JavaPCJavaPC是一個軟件系統(tǒng),它提供了一個簡單而又靈活的移植路徑到Java平臺和網(wǎng)絡計算。JavaPC允許公司企業(yè)在運行MS-DOS和Windows3.x的PC上配置使用Java應用程序22頁1-6移動網(wǎng)絡當一個程序開始通過網(wǎng)絡運行時,在網(wǎng)絡和程序之間就產(chǎn)生一種新的關系。網(wǎng)絡移動(NetworkMobile)代碼確保最終用戶有必要的軟件查看和使用通過網(wǎng)絡發(fā)送的數(shù)據(jù)變得容易。移動代理(MobileAgent),是網(wǎng)絡程序設計的一種改進方法。由于網(wǎng)絡的可靠性不是很重要,所以它們是非常有吸引力的。Java支持網(wǎng)絡移動開始于平臺獨立性和安全性兩方面。Java的這兩項功能使網(wǎng)絡移動步入使用階段。平臺獨立性使開發(fā)一個網(wǎng)絡應用程序更為容易,因為開發(fā)人員不再需要為不同的平臺開發(fā)不同版本的程序。Java的安全性則使得用戶從不可靠的資源下載文件時更為有信心。23頁1-7Java安全性常識Java的安全模式包括3層:Java語言本身。Java編譯器和run-time(運行時)系統(tǒng)。SecurityManager類。24頁1-7Java安全性常識

Java編譯器和run-time系統(tǒng)安全層提供了必要的功能,以確保Java系統(tǒng)不會因無效代碼而崩潰。它提供了一個簡單的、由以下3個子層所組成的安全的運行環(huán)境:Java字節(jié)代碼解釋器和類格式校驗。一個在運行時動態(tài)裝載和檢查庫的機制。自動的垃圾回收機制。25頁1-7Java安全性常識26頁1-8本章小結在網(wǎng)絡通信中,Java不僅提供了面向連接和無連接數(shù)據(jù)報的底層通信,而且還提供了高層服務,如E-mail和WWW服務等。通過Java提供的網(wǎng)絡功能,可以以流的方式來進行網(wǎng)絡數(shù)據(jù)的傳輸,而且不需要關注連網(wǎng)的細節(jié)問題。在因特網(wǎng)上,已經(jīng)開發(fā)了許多服務,如WWW瀏覽、E-mail等,而Java也提供了相應的擴展組件,如對于E-mail應用,Java提供了JavaMailAPI,使用時只需要調(diào)用其提供的方法就可以完成如發(fā)送郵件的操作。Java對數(shù)據(jù)報的支持與它對TCP套接字的支持大致相同,使用DatagramSocket類來表示無連接的Socket,接收和發(fā)送數(shù)據(jù)報。接收和要發(fā)送的數(shù)據(jù)報內(nèi)容保存在DatagramPacket對象中。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論