版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
PAGEIII軟件開發(fā)設(shè)計文檔
文檔管理信息表主題web服務(wù)器版本1.0內(nèi)容可響應(yīng)客戶端發(fā)送文件請求的web服務(wù)器關(guān)鍵字套接字,請求報文,響應(yīng)報文,tcp編程參考文檔無創(chuàng)建時間2016/4/2創(chuàng)建人吳鑫最新發(fā)布日期2016/4/2文檔變更紀(jì)錄更改人日期更改內(nèi)容何鑫2016/4/4創(chuàng)建文件
目錄TOC\o"1-3"1 開發(fā)規(guī)劃 11.1 開發(fā)人員 11.2 開發(fā)計劃 21.3 開發(fā)環(huán)境和工具 31.4 開發(fā)規(guī)范 32 總體設(shè)計 42.1 概念術(shù)語描述 42.1.1 術(shù)語1 42.1.2 術(shù)語2 42.3 主要界面流程描述 72.3.1 功能1界面流程 72.3.2 功能2界面流程 72.4 模塊列表 83 數(shù)據(jù)結(jié)構(gòu) 94 接口規(guī)范 104.1 <模塊1API> 104.1.1 Interface1 104.1.2 Interface2 104.2 <模塊2API> 114.3 <模塊3API> 114.4 <數(shù)據(jù)庫API> 115 模塊設(shè)計 125.1 Module1設(shè)計 125.1.1 模塊設(shè)計描述 125.1.2 模塊界面描述 125.2 Module2設(shè)計 136 附錄 146.1 第三方組件 146.2 參考資料 156.3 附加文檔 15xx項目.項目目標(biāo)PAGE13開發(fā)規(guī)劃開發(fā)人員角色主要職責(zé)負(fù)責(zé)模塊人員備注何鑫負(fù)責(zé)編寫窗口界面創(chuàng)建通信套接字建立連接獲取http請求,解析請求報文封裝文件到http響應(yīng)報文中,并發(fā)送該響應(yīng)報文軟件的測試與優(yōu)化xxx模塊xxx
開發(fā)環(huán)境和工具開發(fā)工具工具作用Microsoftvisualstudio2010web服務(wù)器,窗口界面
總體設(shè)計概念術(shù)語描述術(shù)語1靜態(tài)文本框術(shù)語2請求報文響應(yīng)報文
基本設(shè)計描述1.傳入一個與某個瀏覽器通信的套接字2.啟動一個線程來監(jiān)聽瀏覽器接收到的數(shù)據(jù)recive3.如果監(jiān)聽瀏覽器的請求報文了,要:3.1要將請求報文顯示在服務(wù)器軟件的文本框中3.2要分析瀏覽器發(fā)來的請求報文3.3要根據(jù)請求報文處理瀏覽器的請求頁面4.生成響應(yīng)報文,并輸出到瀏覽器T5.關(guān)閉當(dāng)前連接
主要界面功能流程描述功能1界面流程使用vs2010創(chuàng)建一個基于c#的窗體程序使用靜態(tài)文本框,按鈕等元素布置界面3.添加顯示文本框用來顯示“ip”,“端口號”,和“日志”給兩個按鈕的text重命名并在name里給其命名最終窗體界面如圖所示:(注:我們默認(rèn)服務(wù)器的ip地址為,端口號為5004)功能2創(chuàng)建瀏覽器和服務(wù)器的通信流程數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)庫表列表表名作用endpoint網(wǎng)絡(luò)節(jié)點對象,用來傳入ip號和端口號adress用來獲得IP這個文本框里面的內(nèi)容,為將套接字綁定到端口號中做準(zhǔn)備threadwatch創(chuàng)建負(fù)責(zé)調(diào)用套接字監(jiān)聽的線程sokwatch負(fù)責(zé)監(jiān)聽瀏覽器的套接字sokconnection接收瀏覽器請求并生成相應(yīng)的通信套接字對象isrunning用來控制監(jiān)聽循環(huán)是否退出模塊列表模塊名稱(英文)功能備注模塊1sokwatch.Bind(endpoint)將套接字綁定到指定的端口號上模塊2sokwatch.Listen(10)設(shè)置監(jiān)聽隊列(監(jiān)聽套接字能夠同時處理的瀏覽器連接請求最大個數(shù))模塊3voidwatchConnectt()監(jiān)聽瀏覽器的連接請求模塊4threadwatch=newThread(watchConnectt)實例化線程模塊5threadwatch.Start()啟動線程模塊6voidshowmsg(stringmsg)用來在txtmsglog文本框中顯示相應(yīng)的連接信息功能3接收請求報文流程模塊列表模塊名稱(英文)功能備注模塊1publicdelegatevoidDGshowmsg(stringmsg)用來在控件上顯示消息的委托類型新建類Dataconnection模塊2publicdelegatevoidDGshowmsg(stringmsg)用來在控件上顯示消息的委托類型新建類Gshowmsg,并用委托類型模塊3publicDataconnection(Socketsokconnection,DGshowmsgdgshow)在Dataconnection類里,通過在構(gòu)造函數(shù)傳入?yún)?shù)的方式來傳入與某個瀏覽器通信的套接字和線程模塊4this.threadconnection=newThread(recmsg);直接在內(nèi)部來創(chuàng)建通信線程對象模塊5this.threadconnection.IsBackground=true;this.threadconnection.Start();啟動該線程,并將其設(shè)置為后臺線程arrmsg模塊6length=sokconnection.Receive(arrmsg);將瀏覽器發(fā)來的數(shù)據(jù)裝入緩存區(qū),并獲得真實的數(shù)據(jù)長度模塊7Try{}Catch{}調(diào)用委托對象來在文本框中打印異常消息模塊8dgshow(recmsg);在文本框中顯示消息
數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)庫表列表表名作用conn創(chuàng)建Dataconnection類對象,并傳入當(dāng)前套接字和線程arrmsg字節(jié)數(shù)組,當(dāng)做緩存區(qū)length用來存放瀏覽器發(fā)來的數(shù)據(jù)的長度recmsg用來存儲已轉(zhuǎn)換成字符串類型的數(shù)據(jù)功能4分析請求報文流程模塊列表模塊名稱(英文)功能備注模塊1publicHttpRequestmodel(stringrequeststr){}生成請求報文實體對象,并分析請求報文字符串,將每個語義字符都次實體類的相應(yīng)屬性中新建類HttpRequestmodel模塊2string[]arrequest=requeststr.Replace("\r\n","籀").Split('籀');這里表示的是將‘\r\n’轉(zhuǎn)換成‘籀’,便于處理,并分割字符新建類Gshowmsg,并用委托類型模塊3string[]firstrow=arrequest[0].Split('');按照控件將已經(jīng)分割好的字符再分割模塊4給路徑賦值
數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)庫表列表表名作用path定義頁面路徑字符串功能5讀取文件流程模塊列表模塊名稱(英文)功能備注模塊1dataDir=System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;獲得瀏覽器請求文件的物理路徑默認(rèn)該請求文件在工程目錄下模塊2Switch(){Case:Case:}根據(jù)請求文件的后綴名不同來做出不同的判斷模塊3voidProcessstaticPage(stringpath)該方法用來專門處理靜態(tài)文件模塊4using(FileStreamfs=newFileStream(path,FileMode.Open)){}使用文件流的方式來讀取文件前提是要為FileStream導(dǎo)入命名空間
數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)庫表列表表名作用requestModel在dataconnecton類里創(chuàng)建請求報文實體對象dataDir用來存放當(dāng)前執(zhí)行程序的物理路徑fileDir存儲請求文件的物理路徑extentionName存儲請求文件的后綴名功能6生成響應(yīng)報文流程模塊列表模塊名稱(英文)功能備注模塊1publicbyte[]GetHttpResponseHeader(){}返回響應(yīng)報文頭字符串默認(rèn)該請求文件在工程目錄下模塊2returnSystem.Text.Encoding.UTF8.GetBytes(sbResponse.ToString());返回請求文件的字節(jié)數(shù)組模塊3sokconnection.Send(model.GetHttpResponseHeader());利用套接字來將響應(yīng)報文頭發(fā)送回去模塊4使用文件流的方式來讀取文件前提是要為FileStream導(dǎo)入命名空間
數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)庫表列表表名作用arrfile以二進(jìn)制形式存儲的文件數(shù)據(jù)contentType默認(rèn)的響應(yīng)內(nèi)容的類型sbResponse用來顯示響應(yīng)報文頭model生成響應(yīng)報文頭對象
附錄第三方組件使用的命名空間:usingSystem;usingSystem.Collections.Gen
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新能源汽車維修技術(shù)培訓(xùn)教材及實操
- 家庭用電安全常識及預(yù)防措施
- 新2025年燃?xì)馄髽I(yè)負(fù)責(zé)人和安全管理人員考核題庫(含答案)
- 中考理科實驗技能培訓(xùn)資料
- 企業(yè)安全管理制度標(biāo)準(zhǔn)化工具集
- 手機(jī)應(yīng)用用戶增長策略分析報告
- 幼兒園體育活動計劃及安全保障
- 手術(shù)病理報告數(shù)據(jù)核查流程
- 化妝品生產(chǎn)企業(yè)質(zhì)量安全管理體系
- 航空物流航空物流公司物流操作實習(xí)報告
- 市政工程項目管理及表格模板全集
- 2025年甘肅省蘭州市綜合評標(biāo)專家?guī)炜荚囶}庫(三)
- 家居行業(yè)投資合作合同(2025修訂版)
- 2025年高三語文10月考聯(lián)考作文匯編(解析+立意+范文)
- 2025年人工智慧行業(yè)人工智能技術(shù)與智能操作系統(tǒng)研究報告
- 供應(yīng)商管理績效綜合評價表
- 破產(chǎn)業(yè)務(wù)培訓(xùn)課件
- 蓖麻醇酸鋅復(fù)合除味劑的制備及其除臭效能研究
- 王者輔助教學(xué)課件
- 警用偵查無人機(jī)偵查技術(shù)在反偷獵中的應(yīng)用分析報告
- 2025-2026秋“1530”安全教育記錄表
評論
0/150
提交評論