版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2015《數(shù)字通信技術(shù)》課外設(shè)計(jì)項(xiàng)總結(jié)報(bào) 音網(wǎng)絡(luò)通信傳輸系統(tǒng) 任課教師 組長(zhǎng)成員成員于成員成員成員寧:二零一一、項(xiàng)目的設(shè)計(jì)要求和目運(yùn)用Java編程和數(shù)據(jù)庫(kù)技術(shù),開發(fā)一個(gè)音網(wǎng)絡(luò)通信系統(tǒng),實(shí)現(xiàn)、開發(fā)客戶端操作界面程序和數(shù)據(jù)庫(kù)服務(wù)程、客戶端點(diǎn)播服務(wù)器中的音內(nèi)容,傳送到客戶端界面上顯、客戶端程序和數(shù)據(jù)庫(kù)服務(wù)程序位于兩立計(jì)算機(jī)上,通過(guò)網(wǎng)絡(luò)Mysql,Oracle,SqlServerJava、J2EE技術(shù)及原理,可以使用Java、HTML、JavaScript、JSP、XML等二、方案和技術(shù)路我組開發(fā)的音網(wǎng)絡(luò)通信系統(tǒng)主要由客戶端、數(shù)據(jù)庫(kù)、應(yīng)用服務(wù)器和流服務(wù)器四部分構(gòu)成。系統(tǒng)的運(yùn)行流程如下:(1)、用戶通過(guò)客戶端操作界面選擇所需的音樂(lè)或,客戶端通過(guò)Http協(xié)議根據(jù)用戶所選文件向應(yīng)用服務(wù)器發(fā)送請(qǐng)求。(2)、應(yīng)用服務(wù)器根據(jù)客戶端請(qǐng)求查詢數(shù)據(jù)庫(kù),數(shù)JSONHttp(4)、客戶端根據(jù)應(yīng)用服務(wù)器收到的URL地址通過(guò)Http協(xié)議流服務(wù)器。(5)、存放著音頻和的流服務(wù)器根據(jù)URL地址向客戶端返回相應(yīng)的網(wǎng)絡(luò)流實(shí)現(xiàn)客戶端。圖1為系統(tǒng)的具體運(yùn)行流程:
圖1音頻網(wǎng)絡(luò)通信系統(tǒng)運(yùn)行流本系統(tǒng)采用B/S,即瀏覽器/服務(wù)器結(jié)構(gòu),為實(shí)現(xiàn)客戶端和服務(wù)器在兩立的電腦上運(yùn)行,通信系統(tǒng)的可靠傳輸,因此在部署服務(wù)器和客戶端時(shí)置主機(jī)(服務(wù)端)和另一臺(tái)電腦(客戶端)的IP、(即兩個(gè)IP地址的網(wǎng)絡(luò)號(hào)相同,默認(rèn)網(wǎng)關(guān)為,在關(guān)閉的情況下,用命令進(jìn)行網(wǎng)絡(luò)連通性測(cè)試,通則兩臺(tái)電腦位于同一局域網(wǎng)內(nèi)。命令進(jìn)行連通性分別23:圖2主機(jī)(服務(wù)器)客戶
圖3客戶端主機(jī)(服務(wù)器本系統(tǒng)基于MVC架構(gòu),采用模型(model)-視圖(view)-控制器(controller)碼。CM和VM改變,V應(yīng)該同步更新。本系統(tǒng)中的模型層由Mysql數(shù)據(jù)庫(kù)和IIS音服務(wù)器兩部分構(gòu)成,兩者通過(guò)唯一的文件名將數(shù)據(jù)庫(kù)和用戶上傳的文件相互關(guān)聯(lián)起來(lái)。Mysql數(shù)據(jù)庫(kù)存放了音文件的文件名、存放位置、以及上傳時(shí)間等相關(guān)信息,采用MyBatis框架實(shí)現(xiàn)數(shù)據(jù)的持久化。MyBatis作為支持普通SQL查詢,過(guò)程和高級(jí)映射的持久層框架,消除了幾乎所有的JDBC代碼和參數(shù)的手工設(shè)置及對(duì)結(jié)果集的檢索封裝,大大提高了數(shù)據(jù)庫(kù)編程的效率。Windows自帶的IIS信息服務(wù)管理器相當(dāng)于一款容器池,存放了數(shù)據(jù)庫(kù)中對(duì)應(yīng)的音頻及文件,根據(jù)用戶請(qǐng)求所需音頻及在客戶端服務(wù)器。戶端程序使用JavaScript、Html語(yǔ)言編寫,配合JQuery庫(kù)和EasyUI插件,簡(jiǎn)化了查詢及控制頁(yè)面的開發(fā),利用Ajax實(shí)現(xiàn)局部刷新??蛻舳说囊羝鲃t采用基于HTML的Jyer器,它支持的音頻格式有mp3、wmv、wma以及ogg、格式包括mp4和m4v,能夠充分滿足用戶的需求??蛻舳说牟糠謩t同樣采用JavaScript語(yǔ)言編寫,JQuery庫(kù)和EasyUI插件的運(yùn)用使得界一方面,視圖向用戶顯示相關(guān)的數(shù)據(jù),例如音頻、的名字和數(shù)量,并能接收用戶的輸入數(shù)據(jù),即接收用戶選擇音的操作,但是它并不進(jìn)行任何方面,視圖需要接收模型發(fā)出的數(shù)據(jù)更新,從而對(duì)用戶界面進(jìn)行同步更新。例如服務(wù)器中音資源的內(nèi)容發(fā)生改變則相應(yīng)地客戶端音列表的內(nèi)、controller(控制器本系統(tǒng)的客戶端及服務(wù)端控制層均采用SpringHttp協(xié)議進(jìn)Http協(xié)議借助Servlet進(jìn)行通信并傳輸數(shù)據(jù)。三、調(diào)試過(guò)程序的運(yùn)行有兩種方式,一種是在eclipse里通過(guò)jetty打包再經(jīng)瀏覽器訪問(wèn),另外一種是使用Tomcat打包。后者更為獨(dú)立和簡(jiǎn)便,因此選用后者調(diào)試程在主機(jī)(服務(wù)器端)部署用于存放音頻和的Internet信息服務(wù)(IIS)管理器。具體步驟如下(1、設(shè)置名稱,音頻的為audio,(2件存放的具體URL(3、設(shè)置主機(jī)名并綁定局域網(wǎng)內(nèi)本機(jī)的IP地址,設(shè)置合適的音頻及文件的端口,端口必須保證未被占用。其次,打開Tomcat5為主機(jī)Server6為連接服務(wù)器的客戶端啟動(dòng)界面最后,進(jìn)入主機(jī)瀏覽器,站,進(jìn)入客戶端電腦 4IIS5Server端Tomcat圖 端Tomcat服務(wù)器啟動(dòng)窗四、測(cè)試及結(jié)果分1主機(jī)的服務(wù)器MyMediaServer,見(jiàn)圖7,服務(wù)器導(dǎo)航欄包括音管理、我的音頻和我的三個(gè)標(biāo)題,分別實(shí)現(xiàn)音文件的上傳/刪除、音頻文件查詢以及文件查詢的功能。上傳音頻文件時(shí),首先選擇文件,將要上傳的音頻文件選中(文件格式應(yīng)當(dāng)是mp3、wmv、wma以及ogg中的一種,點(diǎn)擊SaveAudio,若彈圖8框,則上傳成功。文件的上傳方法類似,但須注意文件格式為MP4或M4V。7圖8音頻文件上傳成 圖9文件上傳成圖10、圖11分別對(duì)應(yīng)已經(jīng)上傳成功的音頻及文件,若要?jiǎng)h除文10圖11服務(wù)器文2客戶端ydia ,主頁(yè)為歡迎頁(yè),顯示“數(shù)字通信技術(shù)第六組見(jiàn)圖12導(dǎo)航欄同樣包含音頻及兩方面項(xiàng)目分別實(shí)現(xiàn)音頻和頻功能資源列表為服務(wù)器所上傳的文件帶有翻頁(yè)刷新功能也可根用戶需求設(shè)置每頁(yè)列表所顯示的音條目數(shù)點(diǎn)擊按鈕音文件即通過(guò)yr器新建一個(gè)窗口見(jiàn)圖15圖16能夠?qū)崿F(xiàn)音量調(diào)節(jié)快1213圖14資源列圖15窗圖16音頻窗五、團(tuán)隊(duì)分工合作情于:搭建硬件、軟件環(huán)境,提供創(chuàng)新意見(jiàn):查找資料,錄入音文件,撰寫報(bào)告。寧:javascript及html六、總從未曾接觸Java到設(shè)計(jì)并實(shí)現(xiàn)預(yù)想的功能,經(jīng)過(guò)一個(gè)多月的和努力,我們組受益匪淺。通過(guò)查閱資料和閱讀相關(guān)書籍,探訪各大電子,對(duì)應(yīng),我們了解了java的類、對(duì)象、繼承、多態(tài)、封裝、接口等基礎(chǔ)編JavaScriptHtmlTomcatIIS了Spring框架,Jyer框架和基于JQuery的EasyUI框架的搭建、如何將Java與Mysql數(shù)據(jù)庫(kù)連接起來(lái)以及基于http協(xié)議的、請(qǐng)求等處理方式。在項(xiàng)目設(shè)計(jì)及開發(fā)過(guò)程中,我們也遇到了很多,但后來(lái)通過(guò)小組的共是基于JMF的框架,由于該框架比較老,所支持的音文件不多,僅支持mov、wma等基本的音格式,用戶的需求,通過(guò)探索,框架改成了Jyer,不僅使得器界面更為美觀,也支持了幾乎所有的主流音格式。在將java與數(shù)據(jù)庫(kù)相連接時(shí),我們本來(lái)使用的是JDBC連接,不僅編程繁瑣而且容易出錯(cuò),因此后來(lái)考慮使用MyBatis框架,使得數(shù)據(jù)持久化,Java是面向?qū)ο蟮母咝ㄓ玫木幊陶Z(yǔ)言,本次項(xiàng)目音網(wǎng)絡(luò)通信統(tǒng)的開發(fā)只是用到了其中的一部分,“路漫漫其修遠(yuǎn)兮,吾將上下而求索”,在今后的學(xué)習(xí)過(guò)程中我們?nèi)詫⒗^續(xù)開發(fā)和探索其強(qiáng)大的功能。CREATEDATABASEuseCREATETABLE`audio``id`bigint(20NOTNULLAUTO_INCREMENTCOMMENT主鍵`name`varchar(50DEFAULTNULLCOMMENT文件名`uname`varchar(100DEFAULTNULLCOMMENT唯一文件名`path`varchar(200DEFAULTNULLCOMMENT文件路徑`createtime`datetimeDEFAULTNULLCOMMENT創(chuàng)建時(shí)間`status`int(2DEFAULTNULLCOMMENT狀態(tài),1:正常,2:刪除',PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCREATETABLE```id`bigint(20NOTNULLAUTO_INCREMENTCOMMENT主鍵`name`varchar(50DEFAULTNULLCOMMENT文件名`uname`varchar(100DEFAULTNULLCOMMENT唯一文件名`path`varchar(200DEFAULTNULLCOMMENT文件路徑`createtime`datetimeDEFAULTNULLCOMMENT創(chuàng)建時(shí)間`status`int(2DEFAULTNULLCOMMENT狀態(tài),1:正常,2:刪除',PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTpublicStringupLoad(HttpServletRequestrequest,HttpServletResponseStringresult="";StringUploadPath=request.getSession().getServletContext().getRealPath(Constant._UPLOAD_Filevfile=newFile(CommonsMultipartResolverresolver=newif(resolver.isMultipart(request)){MultipartHttpServletRequestmultiRequest=Map<String,MultipartFile>files=multiRequest.getFileMap();Set<String>fileKeys=files.keySet();for(Stringfkey:fileKeys){MultipartFilemfile=files.get(fkey);Stringonamemfile.getOriginalFilename();//獲取原始文件名StringpinyinName="";//onameonameunicodepinyinName=pinyinName=}Stringnewname=//Spring提供的MultipartFile.transferTo(FileFilesaveFile=newFile(UploadPath,newname);audio=new();audio.setCreatetime(newDate());}}result="upload}catch(Exceptione){result="uploadfailed";}return}publicMap<String,String>delete(Stringids,Stringunames,HttpServletRequestrequest)throwsException{Map<String,String>map=newHashMap<String,String>();try{//Audioaudio=audioMapper.selectByPrimaryKey(id);StringaudioUploadPath=String[]files=unames.split(",");for(Stringuname:files){Filefile=newFile(audioUploadPath,uname);}}String[]fileIds=ids.split(",");for(Stringid:fileIds){},"}catch(Exceptione){map.put("mes"音頻刪除失敗");}return}publicclassHttpRequestpublicstaticStringsendGet(Stringurl,Stringparam){Stringresult="";BufferedReaderin=null;try{StringurlNameString=url+"?"+param;URLrealUrl=newURL(urlNameString);URLConnectionconnection=connection.setRequestProperty("accept","*/*");connection.setRequestProperty("connection","Keep-Alive");Map<String,List<String>>map=for(Stringkey:map.keySet()){System.out.println(key+">"+map.get(key));}//定義BufferedReader輸入流來(lái)URL的響in=newBufferedReader(newInputStreamReader(Stringwhile((line=in.readLine())!=null){result+=line;}}catch(Exceptione)System.out.println("GET請(qǐng)求出現(xiàn)異常!e);}使用finallyfinallytryif(in!=null)}}catch(Exceptione2){}}return}publicstaticStringsendPost(Stringurl,Stringparam){PrintWriterout=null;BufferedReaderin=null;Stringresult="";tryURLrealUrl=newURLConnectionconn=//設(shè)置通用的請(qǐng)求屬性conn.setRequestProperty("accept","*/*");conn.setRequestProperty("connectionKeep-Alive");POST請(qǐng)求必須設(shè)置如下兩行out=newflushin=newnewInputStreamReader(conn.getInputStream(),"utf-8"));Stringline;while((line=in.readLine())!=null){result+=line;}}catch(Exceptione)System.out.println("POST請(qǐng)求出現(xiàn)異常!"+e);}}}}catch(IOExceptionex){}}return}}publicstaticStringpost(Stringurl,Map<String,String>map){List<NameValuePair>nvps=newArrayList<NameValuePair>();for(Stringkey:map.keySet()){NameValuePairnvp= ameValuePair(key,}Stringhtml=null;HttpResponseresponse=null;HttpPosthttpPost=null;try{httpPost=newhttpPost.setEntity(newUrlEncodedFormEntity(nvps,HTTP.UTF_8));response=http.execute(httpPost);HttpEntityhttpEntity=if(response.getStatusLine().getStatusCode()==HttpStatus.SC_OK&&httpEntity!=null){html=EntityUtils.toString(httpEntity,"utf-8");thrownewException("httpPost)+"}}c
溫馨提示
- 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商場(chǎng)美食節(jié)臨時(shí)攤位租賃合同
- 2024年度健身器材購(gòu)銷合同
- 2024年度國(guó)際貿(mào)易仲裁與訴訟合同
- 2024年定制LED高炮廣告牌建設(shè)合同
- 2024乙公司向甲方提供跨境電商服務(wù)的詳細(xì)合同條款
- 2024年度grc材料研發(fā)與技術(shù)轉(zhuǎn)讓合同
- 航天英雄課件教學(xué)課件
- 2024年住宅租賃協(xié)議:個(gè)人與房東間的權(quán)利義務(wù)規(guī)定
- 04版0千伏電力施工合同樣本
- 2024年工程招投標(biāo)合同管理實(shí)操手冊(cè)
- 中國(guó)小學(xué)生生命教育調(diào)查問(wèn)卷
- 通用模板-封條模板
- 集團(tuán)公司后備人才選拔培養(yǎng)暫行辦法
- 第五章旅游餐飲設(shè)計(jì)ppt課件
- 從馬克思主義視角看當(dāng)前高房?jī)r(jià)
- 長(zhǎng)沙市某辦公建筑的冰蓄冷空調(diào)系統(tǒng)的設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 不抱怨的世界(課堂PPT)
- 企業(yè)盈利能力分析——以青島啤酒股份有限公司為例
- 消火栓滅火器檢查記錄表
- 岸墻、翼墻及導(dǎo)水墻砼澆筑方案
- 第三章_配位化學(xué)
評(píng)論
0/150
提交評(píng)論