版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第12章章 Java網(wǎng)絡(luò)編程網(wǎng)絡(luò)編程 學(xué)習(xí)導(dǎo)讀學(xué)習(xí)導(dǎo)讀n用Java開(kāi)發(fā)網(wǎng)絡(luò)軟件非常方便且功能強(qiáng)大,Java用于開(kāi)發(fā)網(wǎng)絡(luò)程序的API均位于包和中。n在本章中我們將首先引見(jiàn)Java網(wǎng)絡(luò)編程中扮演重要角色的InetAddress類(lèi),再引見(jiàn)套接字Socket的概念,同時(shí)以實(shí)例闡明如何運(yùn)用Network API支配套接字。n最后簡(jiǎn)單引見(jiàn)在非銜接的UDP協(xié)議下如何進(jìn)展網(wǎng)絡(luò)通訊。課程構(gòu)造課程構(gòu)造nInetAddress類(lèi)n面對(duì)銜接的流式套接字n面向非銜接的數(shù)據(jù)報(bào)12.1 InetAddress簡(jiǎn)介簡(jiǎn)介nInetAddress描畫(huà)了描畫(huà)了32位或位或128位位IP地址,要完成地址,要完成這個(gè)功能,這個(gè)功能,
2、InetAddress類(lèi)主要依托類(lèi)主要依托Inet4Address 和和 Inet6Address兩個(gè)支持類(lèi)。兩個(gè)支持類(lèi)。n這三個(gè)類(lèi)是承繼關(guān)系,這三個(gè)類(lèi)是承繼關(guān)系,InetAddrress是父類(lèi),是父類(lèi),Inet4Address 和和 Inet6Address是子類(lèi)。是子類(lèi)。 12.1 InetAddress簡(jiǎn)介簡(jiǎn)介n以經(jīng)過(guò)下面的以經(jīng)過(guò)下面的5 5個(gè)靜態(tài)方法來(lái)創(chuàng)建一個(gè)個(gè)靜態(tài)方法來(lái)創(chuàng)建一個(gè)InetAddressInetAddress對(duì)象或?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上面講到的方法均提到前往一個(gè)或多個(gè)上面講到的方法均提到前往一個(gè)或多個(gè)InetAddressInetAddress對(duì)象的援用對(duì)象的援用 12.1 InetAddre
4、ss簡(jiǎn)介簡(jiǎn)介nInetAddress和它的子類(lèi)型對(duì)象處置主機(jī)名到主和它的子類(lèi)型對(duì)象處置主機(jī)名到主機(jī)機(jī)IPv4或或IPv6地址的轉(zhuǎn)換地址的轉(zhuǎn)換 n例:例:InetAddress ia = InetAddress.getByNamesun; n見(jiàn)例見(jiàn)例12。112.2 面向銜接的流式套接字面向銜接的流式套接字n1 什么是套接字什么是套接字 nSocket可以看成在兩個(gè)程序進(jìn)展通訊銜接中的可以看成在兩個(gè)程序進(jìn)展通訊銜接中的一個(gè)端點(diǎn),一個(gè)程序?qū)⒁欢涡畔?xiě)入一個(gè)端點(diǎn),一個(gè)程序?qū)⒁欢涡畔?xiě)入Socket中,中,該該Socket將這段信息發(fā)送給另外一個(gè)將這段信息發(fā)送給另外一個(gè)Socket中中 12.2 面向
5、銜接的流式套接字面向銜接的流式套接字n在兩個(gè)網(wǎng)絡(luò)運(yùn)用程序之間發(fā)送和接納信息時(shí)需在兩個(gè)網(wǎng)絡(luò)運(yùn)用程序之間發(fā)送和接納信息時(shí)需求建立一個(gè)可靠的銜接,流套接字依托求建立一個(gè)可靠的銜接,流套接字依托TCP協(xié)議協(xié)議來(lái)保證信息正確到達(dá)目的地。來(lái)保證信息正確到達(dá)目的地。n在在C/S程序中程序中,包括了相關(guān)聯(lián)的三個(gè)類(lèi):包括了相關(guān)聯(lián)的三個(gè)類(lèi):nInetAddressnSocketnServerSocket 12.2 面向銜接的流式套接字面向銜接的流式套接字n2 ServerSocket類(lèi)類(lèi) n效力器程序套接字效力器程序套接字n構(gòu)造函數(shù):構(gòu)造函數(shù):nServerSocketint port;port參數(shù)傳送端口參數(shù)傳
6、送端口號(hào)號(hào) ,假設(shè)在這時(shí)出現(xiàn)錯(cuò)誤將拋出,假設(shè)在這時(shí)出現(xiàn)錯(cuò)誤將拋出IOException異異常對(duì)象常對(duì)象 n接下來(lái)效力程序進(jìn)入無(wú)限循環(huán)之中。接下來(lái)效力程序進(jìn)入無(wú)限循環(huán)之中。n無(wú)限循環(huán)從調(diào)用無(wú)限循環(huán)從調(diào)用ServerSocket的的accept方法方法開(kāi)場(chǎng),在調(diào)用開(kāi)場(chǎng)后開(kāi)場(chǎng),在調(diào)用開(kāi)場(chǎng)后accept方法將導(dǎo)致調(diào)用方法將導(dǎo)致調(diào)用線程阻塞直到銜接建立。在建立銜接后線程阻塞直到銜接建立。在建立銜接后accept前往一個(gè)最近創(chuàng)建的前往一個(gè)最近創(chuàng)建的Socket對(duì)象,該對(duì)象,該Socket對(duì)象對(duì)象綁定了客戶程序的綁定了客戶程序的IP地址或端口號(hào)。地址或端口號(hào)。 12.2 面向銜接的流式套接字面向銜接的流式套
7、接字n例例:該程序?qū)?chuàng)建一個(gè)該程序?qū)?chuàng)建一個(gè)ServerSocket對(duì)象來(lái)監(jiān)聽(tīng)對(duì)象來(lái)監(jiān)聽(tīng)端口端口10000的銜接懇求,假設(shè)勝利,效力程序?qū)⒌你暯討┣?,假設(shè)勝利,效力程序?qū)⒌却暯虞斎耄_(kāi)場(chǎng)一個(gè)線程處置銜接,并呼應(yīng)等待銜接輸入,開(kāi)場(chǎng)一個(gè)線程處置銜接,并呼應(yīng)來(lái)自客戶程序的命令。來(lái)自客戶程序的命令。 n見(jiàn)例見(jiàn)例12。212.2 面向銜接的流式套接字面向銜接的流式套接字n3 Socket類(lèi)類(lèi) n當(dāng)客戶程序需求與效力器程序通訊時(shí),客戶程當(dāng)客戶程序需求與效力器程序通訊時(shí),客戶程序在客戶機(jī)創(chuàng)建一個(gè)序在客戶機(jī)創(chuàng)建一個(gè)socket對(duì)象對(duì)象 n構(gòu)造函數(shù):構(gòu)造函數(shù):nSocketInetAddress addr,
8、int port;nSocketString host, int port;n能夠經(jīng)過(guò)調(diào)用能夠經(jīng)過(guò)調(diào)用Socket的的 getInputStream方方法從效力程序獲得輸入流讀傳送來(lái)的信息法從效力程序獲得輸入流讀傳送來(lái)的信息n能夠經(jīng)過(guò)調(diào)用能夠經(jīng)過(guò)調(diào)用Socket的的 getOutputStream方方法獲得輸出流來(lái)發(fā)送音訊法獲得輸出流來(lái)發(fā)送音訊 12.2 面向銜接的流式套接字面向銜接的流式套接字n例:這個(gè)程序?qū)?chuàng)建一個(gè)例:這個(gè)程序?qū)?chuàng)建一個(gè)Socket對(duì)象,對(duì)象,Socket將將訪問(wèn)運(yùn)轉(zhuǎn)在指定主機(jī)端口訪問(wèn)運(yùn)轉(zhuǎn)在指定主機(jī)端口10000上的效力程序,上的效力程序,假設(shè)訪問(wèn)勝利,客戶程序?qū)⒔o效力程序
9、發(fā)送一系假設(shè)訪問(wèn)勝利,客戶程序?qū)⒔o效力程序發(fā)送一系列命令并打印效力程序的呼應(yīng)列命令并打印效力程序的呼應(yīng) n見(jiàn)例見(jiàn)例12。312.3 面向非銜接的數(shù)據(jù)報(bào)面向非銜接的數(shù)據(jù)報(bào)n1 UDP簡(jiǎn)介簡(jiǎn)介 User Datagram Protocal nUDP位于第四層位于第四層傳輸層,處于傳輸層,處于IP協(xié)議的上協(xié)議的上一層。一層。nUDP有不提供數(shù)據(jù)報(bào)分組、組裝以及不能對(duì)數(shù)有不提供數(shù)據(jù)報(bào)分組、組裝以及不能對(duì)數(shù)據(jù)報(bào)排序的缺陷。據(jù)報(bào)排序的缺陷。n當(dāng)報(bào)文發(fā)送之后,是無(wú)法得知其能否平安完好當(dāng)報(bào)文發(fā)送之后,是無(wú)法得知其能否平安完好到達(dá)的。到達(dá)的。12.3 面向非銜接的數(shù)據(jù)報(bào)面向非銜接的數(shù)據(jù)報(bào)n2 DatagramP
10、acket類(lèi)類(lèi) nDatagramPacket類(lèi)用于處置報(bào)文,它將類(lèi)用于處置報(bào)文,它將Byte數(shù)數(shù)組、目的地址和目的端口等數(shù)據(jù)包裝成報(bào)文或者組、目的地址和目的端口等數(shù)據(jù)包裝成報(bào)文或者將報(bào)文裝配成將報(bào)文裝配成Byte數(shù)組數(shù)組 n構(gòu)造函數(shù):構(gòu)造函數(shù):n1DatagramPacket(byte buf, int length);n其中其中buf參數(shù)包含了一個(gè)對(duì)保管自尋址數(shù)據(jù)報(bào)信參數(shù)包含了一個(gè)對(duì)保管自尋址數(shù)據(jù)報(bào)信息的字節(jié)數(shù)組的援用,息的字節(jié)數(shù)組的援用,length表示字節(jié)數(shù)組的長(zhǎng)表示字節(jié)數(shù)組的長(zhǎng)度度 n可以經(jīng)過(guò)調(diào)用方法可以經(jīng)過(guò)調(diào)用方法setAddressInetAddress addr和和setPor
11、tint port添加上數(shù)據(jù)報(bào)地址添加上數(shù)據(jù)報(bào)地址和端口信息和端口信息 12.3 面向非銜接的數(shù)據(jù)報(bào)面向非銜接的數(shù)據(jù)報(bào)2DatagramPacketbyte buf, int length, InetAddress addr, int port DatagramPacket的常用方法有:的常用方法有:getAddress、setAddressInetAddress 得到、設(shè)得到、設(shè)置數(shù)據(jù)報(bào)地址。置數(shù)據(jù)報(bào)地址。getDate、setDatebyte buf 得到、設(shè)置數(shù)據(jù)得到、設(shè)置數(shù)據(jù)報(bào)內(nèi)容。報(bào)內(nèi)容。getLength、setLengthing length 得到、設(shè)置得到、設(shè)置數(shù)據(jù)報(bào)長(zhǎng)度。數(shù)據(jù)
12、報(bào)長(zhǎng)度。getPort、setPortint port 得到、設(shè)置端口號(hào)。得到、設(shè)置端口號(hào)。12.3 面向非銜接的數(shù)據(jù)報(bào)面向非銜接的數(shù)據(jù)報(bào)n3 DatagramSocket類(lèi)類(lèi)nDatagramSocket類(lèi)在客戶端創(chuàng)建數(shù)據(jù)報(bào)套接字類(lèi)在客戶端創(chuàng)建數(shù)據(jù)報(bào)套接字與效力器端進(jìn)展通訊銜接,并發(fā)送和接受數(shù)據(jù)報(bào)與效力器端進(jìn)展通訊銜接,并發(fā)送和接受數(shù)據(jù)報(bào)套接字套接字 nDatagramSocket構(gòu)造方法:構(gòu)造方法:nDatagramSocket 創(chuàng)建數(shù)據(jù)報(bào)套接字,綁定創(chuàng)建數(shù)據(jù)報(bào)套接字,綁定到本地主機(jī)恣意存在的端口。到本地主機(jī)恣意存在的端口。nDatagramSocketint port 創(chuàng)建數(shù)據(jù)報(bào)套接字,
13、創(chuàng)建數(shù)據(jù)報(bào)套接字,綁定到本地主機(jī)指定端口。綁定到本地主機(jī)指定端口。nDatagramSocketint port, InetAddress laddr 創(chuàng)建數(shù)據(jù)報(bào)套接字,綁定到指定本地地址。創(chuàng)建數(shù)據(jù)報(bào)套接字,綁定到指定本地地址。 12.3 面向非銜接的數(shù)據(jù)報(bào)面向非銜接的數(shù)據(jù)報(bào)n常用方法:常用方法:nconnectInetAddress address, int port 銜接銜接指定地址。指定地址。ndisconnect 斷開(kāi)套接字銜接。斷開(kāi)套接字銜接。nclose 封鎖數(shù)據(jù)報(bào)套接字。封鎖數(shù)據(jù)報(bào)套接字。ngetInetAddress 得到套接字所銜接的地址。得到套接字所銜接的地址。ngetLo
14、calAddress 得到套接字綁定的主機(jī)地得到套接字綁定的主機(jī)地址。址。ngetLocalPort 得到套接字綁定的主機(jī)端口號(hào)。得到套接字綁定的主機(jī)端口號(hào)。ngetPort 得到套接字的端口號(hào)。得到套接字的端口號(hào)。nreseiveDatagramPacket p 接納數(shù)據(jù)報(bào)。接納數(shù)據(jù)報(bào)。nsendDatagramPacket p 發(fā)送數(shù)據(jù)報(bào)。發(fā)送數(shù)據(jù)報(bào)。n見(jiàn)例見(jiàn)例12。4 例例12。512.3 面向非銜接的數(shù)據(jù)報(bào)面向非銜接的數(shù)據(jù)報(bào)n4 多點(diǎn)傳送和多點(diǎn)傳送和MulticastSocket類(lèi)類(lèi)n假設(shè)效力器程序要將同一信息發(fā)送給多個(gè)客戶假設(shè)效力器程序要將同一信息發(fā)送給多個(gè)客戶端,那么效力器程序和客戶程序可以利用多點(diǎn)傳端,那么效力器程序和客戶程序可以利用多點(diǎn)傳送送multicasting方式進(jìn)展通訊方式進(jìn)展通訊 n網(wǎng)絡(luò)網(wǎng)絡(luò)API經(jīng)過(guò)經(jīng)過(guò)MulticastSocket類(lèi)和類(lèi)和MulticastSocket,以及一些輔助類(lèi)如,以
溫馨提示
- 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至2030年中國(guó)封裝編帶機(jī)行業(yè)投資前景及策略咨詢研究報(bào)告
- 2024年中國(guó)鑄線片鐵帽自動(dòng)鎖市場(chǎng)調(diào)查研究報(bào)告
- 2024年中國(guó)觸片市場(chǎng)調(diào)查研究報(bào)告
- 2024年中國(guó)納米型盲溝材料市場(chǎng)調(diào)查研究報(bào)告
- 2024年中國(guó)塊狀烘槍市場(chǎng)調(diào)查研究報(bào)告
- 2024年中國(guó)彩條T恤衫市場(chǎng)調(diào)查研究報(bào)告
- 2024八年級(jí)數(shù)學(xué)上冊(cè)第12章一次函數(shù)12.2一次函數(shù)第6課時(shí)上課課件新版滬科版
- 2024年平頂山赤峰客運(yùn)從業(yè)資格證模擬考試
- 2024年昆明辦理客運(yùn)從業(yè)資格證考試題和答案
- 2024年長(zhǎng)沙客運(yùn)員考試考什么內(nèi)容的題目好
- 美麗的顏色ppt課件(完美版)
- 兒童牙外傷課件
- 臺(tái)灣歌仔戲的歷史演變
- 《影視光線藝術(shù)與照明技巧》word版本
- 部編四年級(jí)上冊(cè)語(yǔ)文全冊(cè)教材分析
- 真菌性皮膚病-甲真菌病的診療(皮膚性病學(xué)課件)
- 統(tǒng)編版語(yǔ)文三年級(jí)上次第三單元綜合素質(zhì)達(dá)標(biāo)(含答案)
- 建筑工程識(shí)圖與構(gòu)造(土建專(zhuān)業(yè))PPT完整全套教學(xué)課件
- 地球儀與地圖七年級(jí)上冊(cè) 科學(xué)知識(shí)精講與典例提升 (浙教版)
- 國(guó)家職業(yè)類(lèi)別1-6類(lèi)明細(xì)表
- 心理健康與職業(yè)生涯(中職)PPT完整全套教學(xué)課件
評(píng)論
0/150
提交評(píng)論