




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
TCP方式服務(wù)器端編程2學(xué)習(xí)目標(biāo)知識目標(biāo)掌握TCP方式服務(wù)器端編程方法01能力目標(biāo)能夠運用ServerSocket類進(jìn)行服務(wù)器端編程023服務(wù)器端網(wǎng)絡(luò)編程在服務(wù)器端程序編程中,由于服務(wù)器端實現(xiàn)的是被動等待連接,所以服務(wù)器端編程的第一個步驟是監(jiān)聽端口,也就是監(jiān)聽是否有客戶端連接到達(dá)。實現(xiàn)服務(wù)器端監(jiān)聽的代碼為:
ServerSocketss=newServerSocket(10000);該代碼實現(xiàn)的功能是監(jiān)聽當(dāng)前計算機的10000號端口,如果在執(zhí)行該代碼時,10000號端口已經(jīng)被別的程序占用,那么將拋出異常。否則將實現(xiàn)監(jiān)聽。服務(wù)器端編程的第二個步驟是獲得連接。該步驟的作用是當(dāng)有客戶端連接到達(dá)時,建立一個和客戶端連接對應(yīng)的Socket連接對象,從而釋放客戶端連接對于服務(wù)器端端口的占用。實現(xiàn)功能就像公司的前臺一樣,當(dāng)一個客戶到達(dá)公司時,會告訴前臺我找某某某,前臺就通知某某某,然后就可以繼續(xù)接待其它客戶了。4服務(wù)器端網(wǎng)絡(luò)編程通過獲得連接,使得客戶端的連接在服務(wù)器端獲得了保持,另外使得服務(wù)器端的端口釋放出來,可以繼續(xù)等待其它的客戶端連接。實現(xiàn)獲得連接的代碼是:
Socketsocket=ss.accept();該代碼實現(xiàn)的功能是獲得當(dāng)前連接到服務(wù)器端的客戶端連接。需要說明的是accept和前面IO部分介紹的read方法一樣,都是一個阻塞方法,也就是當(dāng)無連接時,該方法將阻塞程序的執(zhí)行,直到連接到達(dá)時才執(zhí)行該行代碼。另外獲得的連接會在服務(wù)器端的該端口注冊,這樣以后就可以通過在服務(wù)器端的注冊信息直接通信,而注冊以后服務(wù)器端的端口就被釋放出來,又可以繼續(xù)接受其它的連接了。5服務(wù)器端網(wǎng)絡(luò)編程連接獲得以后,后續(xù)的編程就和客戶端的網(wǎng)絡(luò)編程類似了,這里獲得的Socket類型的連接就和客戶端的網(wǎng)絡(luò)連接一樣了,只是服務(wù)器端需要首先讀取發(fā)送過來的數(shù)據(jù),然后進(jìn)行邏輯處理以后再發(fā)送給客戶端,也就是交換數(shù)據(jù)的順序和客戶端交換數(shù)據(jù)的步驟剛好相反。這部分的內(nèi)容和客戶端很類似,所以就不重復(fù)了,如果還不熟悉,可以參看下面的示例代碼。
最后,在服務(wù)器端通信完成以后,關(guān)閉服務(wù)器端連接。實現(xiàn)的代碼為:
ss.close();6服務(wù)器端網(wǎng)絡(luò)編程這就是基本的TCP類型的服務(wù)器端編程步驟。下面以一個簡單的echo服務(wù)實現(xiàn)為例子,介紹綜合使用示例。echo的意思就是“回聲”,echo服務(wù)器端實現(xiàn)的功能就是將客戶端發(fā)送的內(nèi)容再原封不動的反饋給客戶端。實現(xiàn)的代碼如下:publicclassSimpleSocketServer{publicstaticvoidmain(String[]args){ServerSocketserverSocket=null;Socketsocket=null;OutputStreamos=null;InputStreamis=null;intport=10000;//監(jiān)聽端口號
try{//建立連接
serverSocket=newServerSocket(port);7服務(wù)器端網(wǎng)絡(luò)編程
//獲得連接
socket=serverSocket.accept();//接收客戶端發(fā)送內(nèi)容
is=socket.getInputStream();byte[]b=newbyte[1024];intn=is.read(b);//輸出
System.out.println("客戶端發(fā)送內(nèi)容為:"+newString(b,0,n));//向客戶端發(fā)送反饋內(nèi)容
os=socket.getOutputStream();os.write(b,0,n);
}catch(Exceptione){e.printStackTrace();}finally{try{//關(guān)閉流和連接
os.close();is.close();socket.close();serverSocket.close();}catch(Exceptione){}}}}89服務(wù)器端網(wǎng)絡(luò)編程在該示例代碼中建立了一個監(jiān)聽當(dāng)前計算機10000號端口的服務(wù)器端Socket連接,然后獲得客戶端發(fā)送過來的連接,如果有連接到達(dá)時,讀取連接中發(fā)送過來的內(nèi)容,并將發(fā)送的內(nèi)容在控制臺進(jìn)行輸出,輸出完成以后將客戶端發(fā)送的內(nèi)容再反饋給客戶端。最后關(guān)閉流和連接對象,結(jié)束程序。在控制臺下面編譯和運行該程序的命令和客戶端部分的類似。這樣
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 整體搬遷合同范本
- 定做汽車合同范本
- 石墨材料的結(jié)構(gòu)與性能創(chuàng)新研究
- 科技辦公設(shè)備使用與維護(hù)的新趨勢
- 二零二五年度正常勞動合同簽訂與員工離職后續(xù)服務(wù)合同
- 2025年度租賃房屋租賃押金退還及條件合同
- 二零二五年度夫妻財產(chǎn)分割與子女撫養(yǎng)權(quán)約定協(xié)議
- 二零二五年度時尚服飾加盟保證金及營銷策劃合同
- 二零二五年度二零二五年度交通工具廣告制作合同
- 二零二五年度軟件著作權(quán)授權(quán)及技術(shù)服務(wù)合同
- 崗位職責(zé)心得體會(2篇)
- 2025年上海寶冶集團(tuán)限公司招聘歷年高頻重點提升(共500題)附帶答案詳解
- 機械設(shè)計基礎(chǔ) 課件 01機械設(shè)計概論
- GB/T 6822-2024船體防污防銹漆體系
- 全國第三屆職業(yè)技能大賽(智能網(wǎng)聯(lián)汽車裝調(diào)運維)選拔賽理論考試題庫(含答案)
- 電信網(wǎng)絡(luò)詐騙犯罪的特征、治理困境及對策建議
- 救護(hù)車掛靠私立醫(yī)院協(xié)議書(2篇)
- 《血透患教》課件
- app 購買合同范例
- 高二上學(xué)期物理(理科)期末試題(含答案)
- 2024年房地產(chǎn)經(jīng)紀(jì)人《房地產(chǎn)經(jīng)紀(jì)專業(yè)基礎(chǔ)》考前沖刺必會試題庫300題(含詳解)
評論
0/150
提交評論