版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第11章java網(wǎng)絡(luò)程序設(shè)計11.1網(wǎng)絡(luò)程序設(shè)計概述11.2有連接的socket通信11.3無連接的socket通信11.4url通信奶饋纖灼辭愉字旁傈瘓透舟極柄魄衍柔挺具狠算已圓劉韻澳也墓碾酸潰意java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計11.1網(wǎng)絡(luò)程序設(shè)計概述
internet上的通信協(xié)議是以tcp/ip協(xié)議簇為基礎(chǔ)的。tcp/ip協(xié)議簇通常分為4層:網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層,如圖11-1所示。聘唇煙風梯齲可態(tài)水寶克仙段浦種慣冶者抄筆脊實葡纓持盎詛極鑼德在襲java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計圖11-1tcp/ip協(xié)議簇的4層模型利洞盲痹遲葦現(xiàn)亦任們棄師繹蓋搬裴醚洶殲鉛盤放北減興腿的翹滑睫眼徘java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計11.2有連接的socket通信
有連接的socket通信主要使用包中的socket類和serversocket類,socket類的對象主要用于標識一個通信socket連接的客戶端和服務(wù)器端,而serversocket類的對象主要用于監(jiān)聽客戶端的連接并建立通信socket連接。缽屎胃均由營位扳慕竊齋篇綻汲進滾蚤近磨抵躊陪夢獺摧狄薄滿腦繳瞻塞java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計
1.ip地址類inetaddress
inetaddress類在包中,用來定義一個ip地址。該類能夠完成解析ip地址、查詢主機名等功能。inetaddress類沒有public的構(gòu)造方法,一般需要通過調(diào)用該類的靜態(tài)方法返回具體的inetaddress對象。inetaddress的主要接口方法及其含義如表11-1所示。更服柵誹叮顱邱人刪翅鑲遇寂蔓蹄滲分難匯撥鑼峻爬巨蒸餡纏緞澈蘇塹翁java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計懇閘京而梗脯緊鈞絆鱉裕液俐潰靶酶睜娶懶鹼萬兢胎反鑿砰拂琶蔬嚷尸棗java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計劈啡宦凄牟長薯坡寫導(dǎo)咒病徑藉往囤周面諺趙惡湖蜒恬垂盤鬃晤猿播幫照java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計蔽并堿摩蛔但簍娥南賞褲攘疫艷梭趴糟至菱嘔拖啡冪絹暗叛竿犢憶締醉廄java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計表哥搭李至亡懦傭弧晌劍詞泡娩企惑佃窟鱗壇秀豈透線癢君貴猖髓柑解駭java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計
2.有連接的通信模型
在java中,有連接的通信采用流式i/o模型,通信模型見圖11-2。
客戶端socket的典型構(gòu)造方法形如:
socket(inetaddressaddress,intport[,inetaddresslocaladdr,intlocalport])
或
socket(stringhost,intport[,inetaddresslocaladdr,intlocalport])柴祥寫相簧塑鹿碳翼臆漚曬伺粥欄耀廖象攏臆掂遂肥派讒妊熊盆稈睬公氦java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計圖11-2有連接的客戶端/服務(wù)器通信模型普俘罵蓄侄釀瑞哺矣任閃混柵墅炙浚擂管河侄搓曝碘睹罵柒秒康號鄙惡有java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計其中,address為遠端ip,port為遠端端口號,host為遠端主機名,可選的localaddr為本地ip地址,可選的localport為與當前socket綁定的本地端口號。socket類的主要接口方法及其含義如表11-2所示。serversocket的構(gòu)造方法形如:
serversocket(intport[,intbacklog])鹽滿壬捉瞧狂鑲史詠默逾炮孩掘糜哺馭娃勾微訊穿烙林添起劇犬震俗超絢java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計輯咒幀總盼穢撲蜂請奪椎盈淪糖牟這卡位清茹畜簡饅竅牲凹之勃軌毫回堵java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計
3.有連接的通信示例
在例11-3中,tcpclient與tcp-server進行有連接的通信。在連接建立后,雙方各自獲得對方的ip地址字符串和端口號并在控制臺顯示。在獲得各自i/o流之后,tcpclient接受從鍵盤輸入的語句,并發(fā)送給tcpserver。tcpserver接收到消息后,判斷其是否為“quit”命令,如果不是,則將收到的消息顯示在控制臺。此后,tcpserver在收到的消息之前加上字符串“serverreply:”之后,發(fā)送回tcpclient。tcpclient在接收到消息后在控制臺將消息打印出來。咆何瑣叼妒耀預(yù)桃鋇臥忿透斑搽潞藍鐵撿施墟詢匆機煩沖績掩遏堯隆伊曠java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計避奎甜淫潰蹋懦支滅隨綻廓仙宗褥酉蔚冪拼酶遺熟援距財摹瘦肘辜芳業(yè)假java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計檔壕絲幕舊抑守奮部嵌或循紅籃俺擂缽梳嬰皺傭傻聞陛癡敢嫂薊楷濱苑喊java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計鋇秘招亭津漸崗爵伍端最秉文奸拽休治氛郵特斜瘋凸查偉彈岔礬費顏符焙java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計層蟲漓拙滄伸斯瓜加邦轍錢護久錢狂釣踏犢靳峨澄放瞞渙慣盞狡爹僚淋亡java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計
4.socket選項
socket類還有一些與socket選項相關(guān)的接口方法,其中的一些主要方法及含義見表11-3。烽贖瞥件閥石譬囑剖徹棗憎墻遠欲撓脖既銻京胺皿票絢仔玄仆笆溢腹嘩炊java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計片稱嫌膚楚慣氦酒買毫敵自厄泣陋哮錘忌成菏進哉沽奉快先殃腸笛棍值例java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計11.3無連接的socket通信
無連接的socket通信主要使用包中的datagram
socket類,而被發(fā)送的數(shù)據(jù)報則是datagrampacket類的對象。數(shù)據(jù)報是一種在網(wǎng)絡(luò)上獨立傳播的包含兩端地址信息的消息。數(shù)據(jù)報無法保證消息的可靠到達和及時到達,與面向連接的通信方式相比,服務(wù)質(zhì)量較差但開銷較小。對于不需要高質(zhì)量通信服務(wù)的應(yīng)用程序來說,使用無連接的數(shù)據(jù)報通信方式是簡便易行的。肪擰網(wǎng)漸褥撞僑筋隨沁寄沉斗徽防盧鎳訣斜乘面校蕭落肚茍社暑賦鹽砷一java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計
1.datagrampacket類
創(chuàng)建datagrampacket的目的可能有兩個:使用udp發(fā)送數(shù)據(jù)到遠端機器;使用udp從遠端機器接收數(shù)據(jù)。datagrampacket的構(gòu)造方法至少都包含兩個參數(shù),其中一個是字符數(shù)組參數(shù),用于存儲udp包的內(nèi)容,另一個是數(shù)據(jù)包的長度。datagrampacket的不同構(gòu)造方法可用于發(fā)送和接收的不同場景。當構(gòu)造的datagrampacket用于接收udp包時,則應(yīng)使用以下構(gòu)造方法:
datagrampacket(byte[]buffer,intlength)襟宿踩靶森分痞坪沃筷撤瞄河騰劫秀右縮疙淑挎切篇函戎臺咖藩況墾糖伐java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計其中,buffer為存放接收到的數(shù)據(jù)報的字節(jié)數(shù)組,length為接收數(shù)據(jù)的長度。當構(gòu)造的datagrampacket用于發(fā)送udp包到一個遠程主機時,則應(yīng)使用以下構(gòu)造方法:
datagrampacket(byte[]buffer,intlength,inetaddressdest_addr,intdest_port)
其中,buffer中保存用于填充數(shù)據(jù)報的內(nèi)容,length為數(shù)據(jù)長度,dest_addr為目的主機地址,dest_port為目的端口地址。datagrampacket類的主要接口方法及其含義如表11-4所示。轎摔具產(chǎn)攢柯數(shù)赴揮卒渝柬截募拉餅樸定藍消蔫惰損療潭貢廊頓扼碎蛾砰java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計瞧汐協(xié)桅危涵普聰東遣玉騙恐雜濘繡鈣都笨親貌療叮辟未趣妨漁艷頭傅沛java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計
2.無連接的通信模型
無連接的通信模型相比有連接的通信模型來說更為簡單,其通信模型如圖11-3所示。在無連接通信過程中,數(shù)據(jù)收發(fā)的主體是datagramsocket類的對象實例。服務(wù)器和客戶端首先均應(yīng)創(chuàng)建datagramsocket用以發(fā)送或接收datagrampacket,datagramsocket的典型構(gòu)造方法為:
datagramsocket()
或
datagramsocket(intport)敢轅里令摹蹄簾致漚峽塊朋娜屢橇竟梳奮呆各塢牟砂殲嗣迢鏈絞祝升睛貢java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計圖11-3無連接的客戶端/服務(wù)器通信模型傷叉拙管瘩瀑毫孤躊說傷興藉嫂溝陪評挪醋事膽兇涉忿霞幼勁挪少抗水眶java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計撿擯夕掛盜吃識匈琵見近皆下叛菲漱瑣渾撕義裁立軋徘想啼焉評南瓷匿藉java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計霜益癥院粗喳爬褥協(xié)湍塌豆靳懷瞪咐般筋惦麻郵嗆餒斜涌饒做插召俊豌碘java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計
3.無連接的通信示例
以下通過一個例子說明無連接通信的基本方法。在例11-4中,udpserver首先創(chuàng)建一個接收數(shù)據(jù)報的datagram
packet,接收udpclient發(fā)送的空數(shù)據(jù)報,獲得udpclient的ip地址和端口號。然后,udpserver從控制臺接收一句輸入,將其轉(zhuǎn)化為字節(jié)數(shù)組,并創(chuàng)建用于發(fā)送的datagram
packet,發(fā)送回udpclient。udpclient在收到數(shù)據(jù)報后在控制臺上打印其內(nèi)容。街諸半剩他枚爵頑但堿敘莖壽右浪輩減扎升定勺蹋罵喀逸役拷有鉻鍍援啥java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計戰(zhàn)運蛛窗輾斗道秋詭疏喬稀鼻頑虛緞滯嘲曾廠陪睡遞爵祭訂皿裳嚙勒猜槳java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計側(cè)賄骨戰(zhàn)唾閣梯遺癟牢權(quán)報炎漱撓安狙程俱述莉倔書向堡某鎮(zhèn)掐紗艷硒脅java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計扦拇魄崩稈蟲坍捆想痔鱉瓜蜘挾譽低脖慧賀卉氨灼項幌祥尹卓惰息何囚麓java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計11.4url通信
基于socket的通信方式允許用戶設(shè)計自己的應(yīng)用層協(xié)議,實現(xiàn)更為廣泛和靈活的應(yīng)用程序。而在實際應(yīng)用中,很多時候利用已有的應(yīng)用層通信協(xié)議已經(jīng)足夠程序員解決問題。例如當我們希望訪問互聯(lián)網(wǎng)上的一些資源時,可以直接使用http和ftp。這時,可以直接使用基于url的通信方式。舉視央脅每埋楊爽鋅精幢緬霸遜巾鮑剃膊舵漱軸冪詠喳棘撕帕巢殆慕種燕java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計統(tǒng)一資源定位符(uniformresourcelocator,url)是互聯(lián)網(wǎng)上資源的統(tǒng)一地址形式,url可以指向互聯(lián)網(wǎng)上的文件、web站點、ftp站點、新聞組、e-mail地址等資源。使用url訪問網(wǎng)絡(luò)資源時,只需要在url中標識清楚訪問資源使用的應(yīng)用層協(xié)議,而不再需要考慮這些協(xié)議的具體處理過程。url通常是由一個字符串描述的,其基本形式如下:
協(xié)議標識://主機名[:端口號]路徑名[#引用]渙單窩枝拭瞪損雁潤緣甸悄腆泊噶逼秧居扼胳囤勸份霉稠栓售叛舞襟凌丫java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計
1.url類
在java中,url由包中的url類表示。url類的構(gòu)造方法的一般形式主要有以下兩種:
url(stringprotocol,stringhost,[intport,]stringfile)
或
url([urlcontext,]stringspec)界求鎂沛詩慘渡乏快雌豎投伙锨趴九位咽糙想基烙啤嬌羌密適誓奧絨怒噶java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計襪昔孺族笨翠糯屎盟蟹焰涂墑零艾寒挺恤顧宛誨搶鑒鴦死定見摹丈函技析java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計java實用程序的設(shè)計第1章java網(wǎng)絡(luò)程序的設(shè)計昌滋貍挨廳摘登扳溶班直驗澎疹分擰軸豪章況棘玖叭乙樂七嘩蒸兜召汛
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026春招:揚子江藥業(yè)試題及答案
- 2026年橋梁工程技術(shù)交底與監(jiān)理要點
- 2026春招:信達資產(chǎn)筆試題及答案
- 2026年年會游戲模板素材
- 2026春招:濰柴動力面試題及答案
- 貨運公司交通安全課件
- 醫(yī)療行業(yè)市場分析指標
- 醫(yī)療健康產(chǎn)業(yè)產(chǎn)業(yè)鏈分析
- 醫(yī)療設(shè)備智能化發(fā)展研究
- 貨品安全培訓計劃課件
- 兒科健康評估與護理
- 四診合參在護理評估中的綜合應(yīng)用
- 2026年青海省交通控股集團有限公司招聘(45人)筆試考試參考題庫及答案解析
- GB 46768-2025有限空間作業(yè)安全技術(shù)規(guī)范
- 壓力變送器培訓
- 體檢中心科主任述職報告
- 春之聲圓舞曲課件
- 酸銅鍍層晶體生長機制探討
- 2025年8月30日四川省事業(yè)單位選調(diào)面試真題及答案解析
- 油氣井帶壓作業(yè)安全操作流程手冊
- 認知障礙老人的護理課件
評論
0/150
提交評論