




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第第12章章 Java網(wǎng)絡(luò)編程網(wǎng)絡(luò)編程 學(xué)習(xí)導(dǎo)讀學(xué)習(xí)導(dǎo)讀n用Java開發(fā)網(wǎng)絡(luò)軟件非常方便且功能強大,Java用于開發(fā)網(wǎng)絡(luò)程序的API均位于包和中。n在本章中我們將首先引見Java網(wǎng)絡(luò)編程中扮演重要角色的InetAddress類,再引見套接字Socket的概念,同時以實例闡明如何運用Network API支配套接字。n最后簡單引見在非銜接的UDP協(xié)議下如何進(jìn)展網(wǎng)絡(luò)通訊。課程構(gòu)造課程構(gòu)造nInetAddress類n面對銜接的流式套接字n面向非銜接的數(shù)據(jù)報12.1 InetAddress簡介簡介nInetAddress描畫了描畫了32位或位或128位位IP地址,要完成地址,要完成這個功能,這個功能,
2、InetAddress類主要依托類主要依托Inet4Address 和和 Inet6Address兩個支持類。兩個支持類。n這三個類是承繼關(guān)系,這三個類是承繼關(guān)系,InetAddrress是父類,是父類,Inet4Address 和和 Inet6Address是子類。是子類。 12.1 InetAddress簡介簡介n以經(jīng)過下面的以經(jīng)過下面的5 5個靜態(tài)方法來創(chuàng)建一個個靜態(tài)方法來創(chuàng)建一個InetAddressInetAddress對象或?qū)ο蠡騃netAddressInetAddress數(shù)組數(shù)組 : :n1 1getAllByNamegetAllByNameString hostString h
3、ost方法方法 n2 2getByAddressgetByAddressbyte addrbyte addr方法方法 n3 3getByAddressgetByAddressString host, byte String host, byte addraddr方法方法 n4 4getByNamegetByNameString hostString host方法方法 n5 5getLocalHostgetLocalHost方法方法 n上面講到的方法均提到前往一個或多個上面講到的方法均提到前往一個或多個InetAddressInetAddress對象的援用對象的援用 12.1 InetAddre
4、ss簡介簡介nInetAddress和它的子類型對象處置主機名到主和它的子類型對象處置主機名到主機機IPv4或或IPv6地址的轉(zhuǎn)換地址的轉(zhuǎn)換 n例:例:InetAddress ia = InetAddress.getByNamesun; n見例見例12。112.2 面向銜接的流式套接字面向銜接的流式套接字n1 什么是套接字什么是套接字 nSocket可以看成在兩個程序進(jìn)展通訊銜接中的可以看成在兩個程序進(jìn)展通訊銜接中的一個端點,一個程序?qū)⒁欢涡畔懭胍粋€端點,一個程序?qū)⒁欢涡畔懭隨ocket中,中,該該Socket將這段信息發(fā)送給另外一個將這段信息發(fā)送給另外一個Socket中中 12.2 面向
5、銜接的流式套接字面向銜接的流式套接字n在兩個網(wǎng)絡(luò)運用程序之間發(fā)送和接納信息時需在兩個網(wǎng)絡(luò)運用程序之間發(fā)送和接納信息時需求建立一個可靠的銜接,流套接字依托求建立一個可靠的銜接,流套接字依托TCP協(xié)議協(xié)議來保證信息正確到達(dá)目的地。來保證信息正確到達(dá)目的地。n在在C/S程序中程序中,包括了相關(guān)聯(lián)的三個類:包括了相關(guān)聯(lián)的三個類:nInetAddressnSocketnServerSocket 12.2 面向銜接的流式套接字面向銜接的流式套接字n2 ServerSocket類類 n效力器程序套接字效力器程序套接字n構(gòu)造函數(shù):構(gòu)造函數(shù):nServerSocketint port;port參數(shù)傳送端口參數(shù)傳
6、送端口號號 ,假設(shè)在這時出現(xiàn)錯誤將拋出,假設(shè)在這時出現(xiàn)錯誤將拋出IOException異異常對象常對象 n接下來效力程序進(jìn)入無限循環(huán)之中。接下來效力程序進(jìn)入無限循環(huán)之中。n無限循環(huán)從調(diào)用無限循環(huán)從調(diào)用ServerSocket的的accept方法方法開場,在調(diào)用開場后開場,在調(diào)用開場后accept方法將導(dǎo)致調(diào)用方法將導(dǎo)致調(diào)用線程阻塞直到銜接建立。在建立銜接后線程阻塞直到銜接建立。在建立銜接后accept前往一個最近創(chuàng)建的前往一個最近創(chuàng)建的Socket對象,該對象,該Socket對象對象綁定了客戶程序的綁定了客戶程序的IP地址或端口號。地址或端口號。 12.2 面向銜接的流式套接字面向銜接的流式套
7、接字n例例:該程序?qū)?chuàng)建一個該程序?qū)?chuàng)建一個ServerSocket對象來監(jiān)聽對象來監(jiān)聽端口端口10000的銜接懇求,假設(shè)勝利,效力程序?qū)⒌你暯討┣?,假設(shè)勝利,效力程序?qū)⒌却暯虞斎?,開場一個線程處置銜接,并呼應(yīng)等待銜接輸入,開場一個線程處置銜接,并呼應(yīng)來自客戶程序的命令。來自客戶程序的命令。 n見例見例12。212.2 面向銜接的流式套接字面向銜接的流式套接字n3 Socket類類 n當(dāng)客戶程序需求與效力器程序通訊時,客戶程當(dāng)客戶程序需求與效力器程序通訊時,客戶程序在客戶機創(chuàng)建一個序在客戶機創(chuàng)建一個socket對象對象 n構(gòu)造函數(shù):構(gòu)造函數(shù):nSocketInetAddress addr,
8、int port;nSocketString host, int port;n能夠經(jīng)過調(diào)用能夠經(jīng)過調(diào)用Socket的的 getInputStream方方法從效力程序獲得輸入流讀傳送來的信息法從效力程序獲得輸入流讀傳送來的信息n能夠經(jīng)過調(diào)用能夠經(jīng)過調(diào)用Socket的的 getOutputStream方方法獲得輸出流來發(fā)送音訊法獲得輸出流來發(fā)送音訊 12.2 面向銜接的流式套接字面向銜接的流式套接字n例:這個程序?qū)?chuàng)建一個例:這個程序?qū)?chuàng)建一個Socket對象,對象,Socket將將訪問運轉(zhuǎn)在指定主機端口訪問運轉(zhuǎn)在指定主機端口10000上的效力程序,上的效力程序,假設(shè)訪問勝利,客戶程序?qū)⒔o效力程序
9、發(fā)送一系假設(shè)訪問勝利,客戶程序?qū)⒔o效力程序發(fā)送一系列命令并打印效力程序的呼應(yīng)列命令并打印效力程序的呼應(yīng) n見例見例12。312.3 面向非銜接的數(shù)據(jù)報面向非銜接的數(shù)據(jù)報n1 UDP簡介簡介 User Datagram Protocal nUDP位于第四層位于第四層傳輸層,處于傳輸層,處于IP協(xié)議的上協(xié)議的上一層。一層。nUDP有不提供數(shù)據(jù)報分組、組裝以及不能對數(shù)有不提供數(shù)據(jù)報分組、組裝以及不能對數(shù)據(jù)報排序的缺陷。據(jù)報排序的缺陷。n當(dāng)報文發(fā)送之后,是無法得知其能否平安完好當(dāng)報文發(fā)送之后,是無法得知其能否平安完好到達(dá)的。到達(dá)的。12.3 面向非銜接的數(shù)據(jù)報面向非銜接的數(shù)據(jù)報n2 DatagramP
10、acket類類 nDatagramPacket類用于處置報文,它將類用于處置報文,它將Byte數(shù)數(shù)組、目的地址和目的端口等數(shù)據(jù)包裝成報文或者組、目的地址和目的端口等數(shù)據(jù)包裝成報文或者將報文裝配成將報文裝配成Byte數(shù)組數(shù)組 n構(gòu)造函數(shù):構(gòu)造函數(shù):n1DatagramPacket(byte buf, int length);n其中其中buf參數(shù)包含了一個對保管自尋址數(shù)據(jù)報信參數(shù)包含了一個對保管自尋址數(shù)據(jù)報信息的字節(jié)數(shù)組的援用,息的字節(jié)數(shù)組的援用,length表示字節(jié)數(shù)組的長表示字節(jié)數(shù)組的長度度 n可以經(jīng)過調(diào)用方法可以經(jīng)過調(diào)用方法setAddressInetAddress addr和和setPor
11、tint port添加上數(shù)據(jù)報地址添加上數(shù)據(jù)報地址和端口信息和端口信息 12.3 面向非銜接的數(shù)據(jù)報面向非銜接的數(shù)據(jù)報2DatagramPacketbyte buf, int length, InetAddress addr, int port DatagramPacket的常用方法有:的常用方法有:getAddress、setAddressInetAddress 得到、設(shè)得到、設(shè)置數(shù)據(jù)報地址。置數(shù)據(jù)報地址。getDate、setDatebyte buf 得到、設(shè)置數(shù)據(jù)得到、設(shè)置數(shù)據(jù)報內(nèi)容。報內(nèi)容。getLength、setLengthing length 得到、設(shè)置得到、設(shè)置數(shù)據(jù)報長度。數(shù)據(jù)
12、報長度。getPort、setPortint port 得到、設(shè)置端口號。得到、設(shè)置端口號。12.3 面向非銜接的數(shù)據(jù)報面向非銜接的數(shù)據(jù)報n3 DatagramSocket類類nDatagramSocket類在客戶端創(chuàng)建數(shù)據(jù)報套接字類在客戶端創(chuàng)建數(shù)據(jù)報套接字與效力器端進(jìn)展通訊銜接,并發(fā)送和接受數(shù)據(jù)報與效力器端進(jìn)展通訊銜接,并發(fā)送和接受數(shù)據(jù)報套接字套接字 nDatagramSocket構(gòu)造方法:構(gòu)造方法:nDatagramSocket 創(chuàng)建數(shù)據(jù)報套接字,綁定創(chuàng)建數(shù)據(jù)報套接字,綁定到本地主機恣意存在的端口。到本地主機恣意存在的端口。nDatagramSocketint port 創(chuàng)建數(shù)據(jù)報套接字,
13、創(chuàng)建數(shù)據(jù)報套接字,綁定到本地主機指定端口。綁定到本地主機指定端口。nDatagramSocketint port, InetAddress laddr 創(chuàng)建數(shù)據(jù)報套接字,綁定到指定本地地址。創(chuàng)建數(shù)據(jù)報套接字,綁定到指定本地地址。 12.3 面向非銜接的數(shù)據(jù)報面向非銜接的數(shù)據(jù)報n常用方法:常用方法:nconnectInetAddress address, int port 銜接銜接指定地址。指定地址。ndisconnect 斷開套接字銜接。斷開套接字銜接。nclose 封鎖數(shù)據(jù)報套接字。封鎖數(shù)據(jù)報套接字。ngetInetAddress 得到套接字所銜接的地址。得到套接字所銜接的地址。ngetLo
14、calAddress 得到套接字綁定的主機地得到套接字綁定的主機地址。址。ngetLocalPort 得到套接字綁定的主機端口號。得到套接字綁定的主機端口號。ngetPort 得到套接字的端口號。得到套接字的端口號。nreseiveDatagramPacket p 接納數(shù)據(jù)報。接納數(shù)據(jù)報。nsendDatagramPacket p 發(fā)送數(shù)據(jù)報。發(fā)送數(shù)據(jù)報。n見例見例12。4 例例12。512.3 面向非銜接的數(shù)據(jù)報面向非銜接的數(shù)據(jù)報n4 多點傳送和多點傳送和MulticastSocket類類n假設(shè)效力器程序要將同一信息發(fā)送給多個客戶假設(shè)效力器程序要將同一信息發(fā)送給多個客戶端,那么效力器程序和客戶程序可以利用多點傳端,那么效力器程序和客戶程序可以利用多點傳送送multicasting方式進(jìn)展通訊方式進(jìn)展通訊 n網(wǎng)絡(luò)網(wǎng)絡(luò)API經(jīng)過經(jīng)過MulticastSocket類和類和MulticastSocket,以及一些輔助類如,以
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024撫州職業(yè)技術(shù)學(xué)院輔導(dǎo)員招聘筆試真題
- 征求意見表2:文成縣糯米山藥種植與加工技術(shù)規(guī)程
- 2025年應(yīng)急救生系統(tǒng)項目合作計劃書
- Recycle 1(第1課時) 教案人教pep英語六年級上冊
- 繪畫語言及其在創(chuàng)作過程中的思想研究
- 6~9的加、減法第4課時 練一練 教案 2025人教版數(shù)學(xué)一年級上冊
- 在班隊活動中重塑“愛的教育”
- 2024年深圳市光明區(qū)水務(wù)局招聘專干真題
- 2025年江蘇省第十屆大學(xué)生就業(yè)創(chuàng)業(yè)知識競賽考試練習(xí)題庫(150題)【答案】
- 2025年江油市招聘屬公費師范畢業(yè)生考試試題【答案】
- 2024版《供電營業(yè)規(guī)則》學(xué)習(xí)考試題庫500題(含答案)
- 做自己的心理壓力調(diào)節(jié)師智慧樹知到期末考試答案章節(jié)答案2024年嘉興大學(xué)
- 學(xué)術(shù)期刊推廣方案
- 安檢設(shè)備采購安裝調(diào)試方案
- 2023年保定市蠡縣教師招聘考試真題
- 實習(xí)生-OFFER正式通知函
- 市政臨時占道施工方案
- 《分娩方式的選擇》課件
- 《FABE銷售法則》課件
- 直流屏培訓(xùn)課件
- 培訓(xùn)課件 -BBF品牌建設(shè)模型-
評論
0/150
提交評論