![Java程序設(shè)計項目式教程 課件 11-1 學(xué)生信息文件的上傳_第1頁](http://file4.renrendoc.com/view11/M00/03/06/wKhkGWWdPt2AP-khAAFHTMQmPjw419.jpg)
![Java程序設(shè)計項目式教程 課件 11-1 學(xué)生信息文件的上傳_第2頁](http://file4.renrendoc.com/view11/M00/03/06/wKhkGWWdPt2AP-khAAFHTMQmPjw4192.jpg)
![Java程序設(shè)計項目式教程 課件 11-1 學(xué)生信息文件的上傳_第3頁](http://file4.renrendoc.com/view11/M00/03/06/wKhkGWWdPt2AP-khAAFHTMQmPjw4193.jpg)
![Java程序設(shè)計項目式教程 課件 11-1 學(xué)生信息文件的上傳_第4頁](http://file4.renrendoc.com/view11/M00/03/06/wKhkGWWdPt2AP-khAAFHTMQmPjw4194.jpg)
![Java程序設(shè)計項目式教程 課件 11-1 學(xué)生信息文件的上傳_第5頁](http://file4.renrendoc.com/view11/M00/03/06/wKhkGWWdPt2AP-khAAFHTMQmPjw4195.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
§11-1學(xué)生信息文件的上傳Java面向?qū)ο蟪绦蛟O(shè)計教學(xué)目標(biāo)任務(wù)分析
學(xué)生基本信息即可以存儲在數(shù)據(jù)庫中,也可以存儲在文件中,還可以存儲在網(wǎng)絡(luò)服務(wù)器中。本任務(wù)就是通過Java網(wǎng)絡(luò)編程,將存儲學(xué)生信息的文件上傳至網(wǎng)絡(luò)服務(wù)器。
教學(xué)內(nèi)容1網(wǎng)絡(luò)基礎(chǔ)Socket類2多客戶端訪問處理43ServerSocket類網(wǎng)絡(luò)基礎(chǔ)
TCP/IP是TransmissionControlProtocol/InternetProtocol(傳輸控制協(xié)議/網(wǎng)際互聯(lián)協(xié)議)的縮寫,代表TCP協(xié)議和IP協(xié)議。TCP/IP是Internet上所有網(wǎng)絡(luò)和主機之間進行交流所使用的共同“語言”,是Internet上使用的一組完整的標(biāo)準(zhǔn)網(wǎng)絡(luò)連接協(xié)議。通常所說的TCP/IP協(xié)議實際上包含了大量的協(xié)議和應(yīng)用,是且由多個獨立定義的協(xié)議組合在一起的一個協(xié)議簇。7OSI應(yīng)用6表示5會話4傳輸3網(wǎng)絡(luò)2數(shù)據(jù)鏈路1物理TCP/IP應(yīng)用
傳輸互聯(lián)網(wǎng)主機至網(wǎng)絡(luò)在模型中不存在圖11-1TCP/IP參考模型網(wǎng)絡(luò)基礎(chǔ)
應(yīng)用層:在TCP/IP模型中,應(yīng)用程序接口是最高層,它與OSI模型中的高3層的任務(wù)相同,用于提供網(wǎng)絡(luò)服務(wù),如文件傳輸(FTP)、遠程登陸(TELNET)、域名服務(wù)(DNS)和簡單網(wǎng)絡(luò)管理(SNMP)等。
傳輸層:TCP/IP的傳輸層也被稱為主機至主機層,與OSI的傳輸層類似,主要負責(zé)主機到主機之間的端到端通信。該層使用了兩種端到端的協(xié)議來支持?jǐn)?shù)據(jù)的傳送,即TCP協(xié)議和UDP協(xié)議。
互聯(lián)網(wǎng)層:它是整個體系結(jié)構(gòu)的關(guān)鍵部分,其主要功能是處理來自傳輸層的分組,將分組形成數(shù)據(jù)包(IP數(shù)據(jù)包),并為該數(shù)據(jù)包進行路徑選擇,最終將它們從源主機發(fā)送到目的主機。該層最常用的協(xié)議是IP協(xié)議,其它一些協(xié)議用來協(xié)助IP的操作。
主機至網(wǎng)絡(luò)層:TCP/IP模型的最低層,也稱網(wǎng)絡(luò)訪問層,包括能使用TCP/IP與物理網(wǎng)絡(luò)進行通信的協(xié)議,對應(yīng)著OSI的物理層和數(shù)據(jù)鏈路層。TCP/IP標(biāo)準(zhǔn)在該層沒有定義具體的協(xié)議,只是指出主機必須使用某種協(xié)議與網(wǎng)絡(luò)連接,以便能在其上傳遞IP分組。這極大的提高了靈活性,使得TCP/IP協(xié)議可以運行在任何網(wǎng)絡(luò)之上。網(wǎng)絡(luò)基礎(chǔ)
標(biāo)準(zhǔn)的URL由3部分組成:協(xié)議類型、主機名和路徑名。如圖11-3所示為山東電子職業(yè)技術(shù)學(xué)院的WWW服務(wù)器的URL。
其中,“http”指出要使用HTTP協(xié)議;“”指出要訪問的服務(wù)器的主機名;“Index.html”指出要訪問的主頁的路徑及文件名。圖11-3標(biāo)準(zhǔn)的URL組成網(wǎng)絡(luò)基礎(chǔ)URL的構(gòu)成包括:信息服務(wù)方式://信息資源的地址/文件路徑信息服務(wù)方式目前,WWW系統(tǒng)中編入URL的最普遍的服務(wù)連接方式有以下4種:lHTTP:使用HTTP協(xié)議,提供超文本信息服務(wù)的WWW信息資源空間。lFTP:使用FTP協(xié)議,提供文件傳送服務(wù)的FTP資源空間。lFILE:使用本地HTTP協(xié)議,提供超級文件信息服務(wù)的WWW信息資源空間。lTELNET:使用TELNET協(xié)議,提供遠程登陸信息服務(wù)的TELNET信息資源空間。Socket類JDK中提供了ServerSocket類,表示服務(wù)器端,Socket類表示客戶端。通信時,首先要創(chuàng)建代表服務(wù)器端的ServerSocket對象,該對象相當(dāng)于開啟一個服務(wù),并等待客戶端的連接,然后創(chuàng)建代表客戶端的Socket對象,并向服務(wù)器段端發(fā)出連接請求,服務(wù)器端響應(yīng)請求,兩者建立連接后可以通信。socketserversocket客戶端向服務(wù)器端發(fā)送請求服務(wù)器端響應(yīng)客戶端請求Socket類Socket常用構(gòu)造方法方法說明publicSocket(Stringhost,intport)構(gòu)造方法,遠程服務(wù)器的地址和端口號publicSocket(InetAddresshost,intport)構(gòu)造方法,遠程服務(wù)器的地址和端口號publicInputStreamgetInputStream()獲取輸入流publicOutputStreamgetOutputStream()獲取輸出流publicvoidclose()關(guān)閉socketServerSocket類ServerSocket常用構(gòu)造方法方法說明publicServerSocket(intport)構(gòu)造方法,創(chuàng)建綁定到特定端口的服務(wù)器套接字publicSocketaccept()偵聽并接受到此套接字的連接,返回Socket套接字。publicintgetLocalPort()返回此套接字在其上偵聽的端口publicvoidclose()關(guān)閉ServerSocketSocket類、ServerSocket類publicclassclient_tcp{publicstaticvoidmain(String[]args)throwsUnknownHostException,IOException{ //創(chuàng)建客戶端Socket對象(發(fā)送請求) Socketsocket=newSocket("",8888); //獲取用于數(shù)據(jù)傳輸?shù)妮敵隽?OutputStreamos=socket.getOutputStream(); //將數(shù)據(jù)寫出 os.write("老師您好,我是學(xué)生1".getBytes());
//客戶端讀取服務(wù)端回寫的數(shù)據(jù) InputStreamis=socket.getInputStream();
byte[]bys=newbyte[1024]; intlen=is.read(); Strings=newString(bys,0,len); System.out.println("客戶端接收到的收據(jù):"+s); socket.close(); }}Socket類、ServerSocket類publicclassServer_tcp{ publicstaticvoidmain(String[]args)throwsIOException{ //創(chuàng)建客戶端Socket對象(發(fā)送請求) ServerSocketserver=newServerSocket(8888); System.out.println("服務(wù)器已啟動!"); Socketsocket=server.accept(); System.out.println("接收到請求!"); //獲取用于傳輸數(shù)據(jù)的流對象 InputStreamis=socket.getInputStream(); byte[]bys=newbyte[1024]; intlen=is.read(); Strings=newString(bys,0,len); System.out.println("服務(wù)端接收到的數(shù)據(jù):"+s); //服務(wù)端寫出數(shù)據(jù) OutputStreamos=socket.getOutputStream(); //將數(shù)據(jù)寫出 os.write("同學(xué)你好,消息已收到".getBytes()); socket.close(); }}多客戶端訪問處理
前面例子中的簡單服務(wù)器存在一個問題:同一時刻只能有一個客戶端連接到我們的服務(wù)器上。通常,服務(wù)器總是不間斷的運行在計算機上,我們希望有多個客戶端能夠同時使用服務(wù)器,拒絕多客戶端連接將使得一個用戶因長時間連接而獨占服務(wù)。其實,我們可以運用線程把這個問題解決好。
每當(dāng)程序建立一個新的套接字連接,也就是說當(dāng)accept()方法被成功調(diào)用的時候,將創(chuàng)建一個新的線程來處理服務(wù)器和該客戶端的連接。主程序?qū)⒘⒓捶祷夭⒌却乱粋€連接。為了實現(xiàn)這個機制,服務(wù)器應(yīng)該具有類似以下代碼的循環(huán)操作。多客戶端訪問處理
每當(dāng)程序建立一個新的套接字連接,也就是說當(dāng)accept()方法被成功調(diào)用的時候,將創(chuàng)建一個新的線程來處理服務(wù)器和該客戶端的連接。主程序?qū)⒘⒓捶祷夭⒌却乱粋€連接。為了實現(xiàn)這個機制,服務(wù)器應(yīng)該具有類似以下代碼的循環(huán)操作。while(true){ Sockets=server.accept(); Runnabler=newThreadServerHandler(s); newThread(r).start();}多客戶端訪問處理ThreadServerHandler類實現(xiàn)了Runnable接口,而且它的run()方法中包含了與客戶端通信的代碼。classThreadServerHandlerimplementsRunnable{ publicvoidrun(){ try{ InputStreaminStream=s.getInputStream(); OutputStreamoutStream=s.getOutputStream(); //處理輸出與輸出 s.close(); }catch(IOExceptione){ //處理異常 }}}由于每一個連接都會啟
動一個新的線程,因而多個客戶端就可以同時連接到服
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年光纖通信電纜線路施工申請協(xié)議
- 2025年木材廠場地出租合同
- 2025年個體與租車公司租賃協(xié)議樣本
- 2025年個人之間還款協(xié)議模板
- 2025年產(chǎn)品銷售聯(lián)合合同
- 2025年地產(chǎn)策劃合作補充協(xié)議
- 2025年企業(yè)醫(yī)療救助協(xié)議標(biāo)準(zhǔn)
- 2025年停車場車位共有權(quán)協(xié)議范本
- 2025年節(jié)能型路燈購銷合同
- 2025年設(shè)備選購與安裝合同范文
- 《辣椒主要病蟲害》課件
- 2024年煤礦安全生產(chǎn)知識培訓(xùn)考試必答題庫及答案(共190題)
- 《法律援助》課件
- 小兒肺炎治療與護理
- GB/T 36547-2024電化學(xué)儲能電站接入電網(wǎng)技術(shù)規(guī)定
- 育嬰員初級培訓(xùn)
- 學(xué)校物業(yè)管理投標(biāo)書范本
- 護理教學(xué)組工作匯報
- 醫(yī)療廢物管理條例
- 新視野英語1學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 生活垃圾焚燒發(fā)電廠摻燒一般工業(yè)固廢和協(xié)同處置污泥項目環(huán)評資料環(huán)境影響
評論
0/150
提交評論