版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、10/10HYPERLIN 服務(wù)器端: YPELINK ”va代碼 :imot javaio。Exetion; impor.nScktAddress; ipor。everSocket; imoSocket; impra.nio。Byteuffer;mpr jaani.hnnls。SlectionKey; pot java.no。cannelSeec;mport va。io。hanels.ServerocketChanl; importjva。ni。channels。Socethannl;import ja。nio.arstChrse; importjva。til。HasMap; mprt aa
2、.ut。Mp; imortjva.il。St; publi cassNIOSSever privinpor = 888; /解碼buffe 不敗戰(zhàn)神:rivateChase = ChrseorName(gbk); /*接受數(shù)據(jù)緩沖區(qū)/ rte statc ByteBe Bufer= ByteBufer。loate(1024); 發(fā)送數(shù)據(jù)緩沖區(qū)/ privtea ByeBuffrrBfer= ByteBffer。alcate(124); /映射客戶端channe / rive Mp cliensap = n shaSring, ocetC();piv saticSelecto selctor;p
3、ulic NIOSevr(intpot) thsport = ort; r int(); cac (xetin e) eptStackTrace(); privt od it()hwsIExcetion / 啟動(dòng)YPERINK 服務(wù)器端,配置為非阻塞,綁定端口,注冊(cè)accep事件 帝尊: *CEP事件:當(dāng)服務(wù)端收到客戶端連接請(qǐng)求時(shí),觸發(fā)該事件 / SeverSocketChann serverSocketCnnl= SeverSockethannelpe(); serverSockethan.crecing(flse); SvrSoce serveoke seveSckChannel。scke
4、t(); servecetbind(e IetockAddres(port)); eeco = Selecto。open();sererSocetCnnel.rgiste(selto, SeltioKy.AEP); ytemou.pintln(ver sat on port:”+pot); /* 服務(wù)器端輪詢監(jiān)聽,select方法會(huì)一直阻塞直到有相關(guān)事件發(fā)生或超時(shí) *天驕無(wú)雙:private idlite()hile (true) ry seer.slect();返回值為本次觸發(fā)的事件數(shù) SeSlecionKey lectinKy = elector.slectedy(); for(Selct
5、inKy k: selectinKes) hndle(key);seletoKeysclea();/清除處理過(guò)的事件 ach (Expo ) epintStacTce(); ek; * 處理不同的事件 */ prve vid handle(eectinKey selectiney) throws OException ervercketChanel srver = nul; Skannl clent nll; StrirceieText=nul; int count=0; (seletnKey.isAcptable()) 客戶端請(qǐng)求連接事件 人皇: * seversockt為該客戶端建立cet
6、連接,將此cet注冊(cè)RA事件,監(jiān)聽客戶端輸入 RE事件:當(dāng)客戶端發(fā)來(lái)數(shù)據(jù),并已被服務(wù)器控制線程正確讀取時(shí),觸發(fā)該事件 */ svr (SreSocetnne) eletonKe.hae(); cliet = server。acpt();cliet.configureBoking(alse); clietreste(sector, SelectnKeyP_ED); ele f (slecinKeiReaabe() / ED事件,收到客戶端發(fā)送數(shù)據(jù),讀取數(shù)據(jù)后繼續(xù)注冊(cè)監(jiān)聽客戶端 clint = (SckeCanne)ectinKy。channel(); rBfferlear(); out = nt
7、。read(ufe); i(u ) ruffer.fli(); receieex = tring.aueOf(c.do(rBufer)。ray();St。ut。prin(clet.torin():reciveext); dispatc(clet,recivet); lient(SoketChannel) seectionKey.chann(); clitregistr(lectr, SeletionKey。O_RED);斬龍: / 把當(dāng)前客戶端信息 推送到其他客戶端 / priate od isptch(SokeCannl clent,tring ifo) hrows OException S
8、oke s = clen。soc(); Sin nae +s.getInAde().toString()。sbtrig(1)+”:”Ineger.toHexStrn(clie。hshod())+; f(!clintsap.sEmty())for(ap。EntryString,oetChanlent : clentsapntrySet()) Sokethann te = entrygetValue();f(!clint.equals(temp)) sBuffer。cla(); Bufr。pu((ame+:”+info)。getByt(); Buffer。flip();輸出到通道 奧術(shù)神座: te
9、。wte(suffer); clintappt(nae, ciet); publcsttic void mai(tring ag)rowsIOExepton NIOSrerrve =new IOSServe(77); ervr.isen(); 客戶端,可運(yùn)行啟動(dòng)多個(gè): HERLINK ava代碼: pr java.iBuferedReader; import java。io.IOExeption; import jaa.。nputStreamRade; impor。InetSokeAddes; iportj。ni.BeBer; imor jav。nio.cannels。SelctionKey;
10、 imprt jano.chanels.Selectr;impo javn。hnels.ockeCannel;ipor va。uiDa; imo java.uil。Set; ul casNIOien 發(fā)送數(shù)據(jù)緩沖區(qū)/ 飛速小說(shuō):privattati ByteufrsBuffer =ByteBufer.aoct(14); /*接受數(shù)據(jù)緩沖區(qū)/ rivte static yeBuffr Buffer yteBuffer。aloate(102); 服務(wù)器端地址/ pivate netScetAddrsSERVER; prv staic Selectelect;prvate satic oketCha
11、nl clien; privae stati Srng recivText; private saticSin enText; privatestatic intcoun0;publi NOCliet(t prt) RV= e InetocetAdrs(localo, pt);ini(); publi vod init() y * 客戶端向服務(wù)器端發(fā)起建立連接請(qǐng)求 / SockeChan socetChanl= SocketChane。opn();ocetChannelconfigureBocki(ale); selector = eltor.opn(); ocktChannel.rster(
12、seector,lectoneyOCONNCT);soketannel.onect(SRVR); /* *輪詢監(jiān)聽客戶端上注冊(cè)事件的發(fā)生 天驕無(wú)雙:/ whil(true) selec.elct(); SetSlectoneykeSt = seectorselectKes();or(finl eletiKyey :yS) andle(ky); ; kyStclear(); cach (Exepion ) e。pintStakrace(); publc stacoimain(Srin args)thrwIxetion Nlient client = eNOClet(77); rivte void
13、 handl(SelionKeyslectinKe) rows IExeption if (sltonK。sConnectble()) /* 連接建立事件,已成功連接至服務(wù)器 */client= (SokChannl) sectioney。chnel(); if (clen。isConnctionPndin() cient.finishCnct();Syeot.itln(connct sucess !”); sBuffrclear(); sBffer.put((e at()。toocaleSrng() onnected!).gytes()); Buffr.lip(); lit。rite(sBu
14、ffer);/發(fā)送信息至服務(wù)器 /原文來(lái)自站長(zhǎng)網(wǎng) 天驕無(wú)雙:* 啟動(dòng)線程一直監(jiān)聽客戶端輸入,有信心輸入則發(fā)往服務(wù)器端 因?yàn)檩斎肓魇亲枞?,所以單?dú)線程監(jiān)聽/ ew head()Oeride publc void ru() hil(true) ty Buffercler();InputStreamReadeit = new IuramReade(yste。);ffeReade br= newuffreader(input); sendText = br.readLine(); /* 未注冊(cè)WRIE事件,因?yàn)榇蟛糠謺r(shí)間cha都是可以寫的*ufr。put(senText.geByts(); sBufr.flip(); cliet。wre(suffer); catch(IEcepie) e.priStacae(); break; ; 。stat(); /注冊(cè)讀事件 cliet.reter(eleor, eletiney_EAD); ee i (electiony.isReadabe()) / *讀事件觸發(fā) 九星天辰訣: 有從服務(wù)器端發(fā)送過(guò)來(lái)的信息,讀取輸出到屏幕上后,繼續(xù)注冊(cè)讀事件 * 監(jiān)聽服
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)員工培訓(xùn)與發(fā)展支持模板
- 跨部門溝通協(xié)調(diào)培訓(xùn)課件
- 駕駛員安全教育培訓(xùn)內(nèi)容
- 精神衛(wèi)生培訓(xùn)制度
- 2觸電人員的急救
- 出納綜合考試題及答案
- 采油調(diào)度員考試題庫(kù)及答案
- 四川省內(nèi)江市2026年中考語(yǔ)文三模試卷附答案
- 2025-2026人教版八年級(jí)語(yǔ)文上期測(cè)試卷
- 2025-2026二年級(jí)道德法治測(cè)試題
- 2026海南安??毓捎邢挢?zé)任公司招聘11人筆試模擬試題及答案解析
- 裝飾裝修工程施工組織設(shè)計(jì)方案(二)
- 2026上海碧海金沙投資發(fā)展有限公司社會(huì)招聘參考題庫(kù)必考題
- 保險(xiǎn)業(yè)客戶服務(wù)手冊(cè)(標(biāo)準(zhǔn)版)
- 檢驗(yàn)科內(nèi)控制度
- DB44-T 2771-2025 全域土地綜合整治技術(shù)導(dǎo)則
- 淺談醫(yī)藥價(jià)格管理現(xiàn)狀透析
- 全屋定制合同協(xié)議模板2025年標(biāo)準(zhǔn)版
- 起重機(jī)檢測(cè)合同協(xié)議
- 2025年數(shù)字人民幣應(yīng)用基礎(chǔ)考試模擬試卷及答案
- 孕婦監(jiān)護(hù)和管理課件
評(píng)論
0/150
提交評(píng)論