版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PAGEIII軟件開(kāi)發(fā)設(shè)計(jì)文檔
文檔管理信息表主題web服務(wù)器版本1.0內(nèi)容可響應(yīng)客戶端發(fā)送文件請(qǐng)求的web服務(wù)器關(guān)鍵字套接字,請(qǐng)求報(bào)文,響應(yīng)報(bào)文,tcp編程參考文檔無(wú)創(chuàng)建時(shí)間2016/4/2創(chuàng)建人吳鑫最新發(fā)布日期2016/4/2文檔變更紀(jì)錄更改人日期更改內(nèi)容何鑫2016/4/4創(chuàng)建文件
目錄TOC\o"1-3"1 開(kāi)發(fā)規(guī)劃 11.1 開(kāi)發(fā)人員 11.2 開(kāi)發(fā)計(jì)劃 21.3 開(kāi)發(fā)環(huán)境和工具 31.4 開(kāi)發(fā)規(guī)范 32 總體設(shè)計(jì) 42.1 概念術(shù)語(yǔ)描述 42.1.1 術(shù)語(yǔ)1 42.1.2 術(shù)語(yǔ)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ù)庫(kù)API> 115 模塊設(shè)計(jì) 125.1 Module1設(shè)計(jì) 125.1.1 模塊設(shè)計(jì)描述 125.1.2 模塊界面描述 125.2 Module2設(shè)計(jì) 136 附錄 146.1 第三方組件 146.2 參考資料 156.3 附加文檔 15xx項(xiàng)目.項(xiàng)目目標(biāo)PAGE13開(kāi)發(fā)規(guī)劃開(kāi)發(fā)人員角色主要職責(zé)負(fù)責(zé)模塊人員備注何鑫負(fù)責(zé)編寫窗口界面創(chuàng)建通信套接字建立連接獲取http請(qǐng)求,解析請(qǐng)求報(bào)文封裝文件到http響應(yīng)報(bào)文中,并發(fā)送該響應(yīng)報(bào)文軟件的測(cè)試與優(yōu)化xxx模塊xxx
開(kāi)發(fā)環(huán)境和工具開(kāi)發(fā)工具工具作用Microsoftvisualstudio2010web服務(wù)器,窗口界面
總體設(shè)計(jì)概念術(shù)語(yǔ)描述術(shù)語(yǔ)1靜態(tài)文本框術(shù)語(yǔ)2請(qǐng)求報(bào)文響應(yīng)報(bào)文
基本設(shè)計(jì)描述1.傳入一個(gè)與某個(gè)瀏覽器通信的套接字2.啟動(dòng)一個(gè)線程來(lái)監(jiān)聽(tīng)瀏覽器接收到的數(shù)據(jù)recive3.如果監(jiān)聽(tīng)瀏覽器的請(qǐng)求報(bào)文了,要:3.1要將請(qǐng)求報(bào)文顯示在服務(wù)器軟件的文本框中3.2要分析瀏覽器發(fā)來(lái)的請(qǐng)求報(bào)文3.3要根據(jù)請(qǐng)求報(bào)文處理瀏覽器的請(qǐng)求頁(yè)面4.生成響應(yīng)報(bào)文,并輸出到瀏覽器T5.關(guān)閉當(dāng)前連接
主要界面功能流程描述功能1界面流程使用vs2010創(chuàng)建一個(gè)基于c#的窗體程序使用靜態(tài)文本框,按鈕等元素布置界面3.添加顯示文本框用來(lái)顯示“ip”,“端口號(hào)”,和“日志”給兩個(gè)按鈕的text重命名并在name里給其命名最終窗體界面如圖所示:(注:我們默認(rèn)服務(wù)器的ip地址為,端口號(hào)為5004)功能2創(chuàng)建瀏覽器和服務(wù)器的通信流程數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)庫(kù)表列表表名作用endpoint網(wǎng)絡(luò)節(jié)點(diǎn)對(duì)象,用來(lái)傳入ip號(hào)和端口號(hào)adress用來(lái)獲得IP這個(gè)文本框里面的內(nèi)容,為將套接字綁定到端口號(hào)中做準(zhǔn)備threadwatch創(chuàng)建負(fù)責(zé)調(diào)用套接字監(jiān)聽(tīng)的線程sokwatch負(fù)責(zé)監(jiān)聽(tīng)瀏覽器的套接字sokconnection接收瀏覽器請(qǐng)求并生成相應(yīng)的通信套接字對(duì)象isrunning用來(lái)控制監(jiān)聽(tīng)循環(huán)是否退出模塊列表模塊名稱(英文)功能備注模塊1sokwatch.Bind(endpoint)將套接字綁定到指定的端口號(hào)上模塊2sokwatch.Listen(10)設(shè)置監(jiān)聽(tīng)隊(duì)列(監(jiān)聽(tīng)套接字能夠同時(shí)處理的瀏覽器連接請(qǐng)求最大個(gè)數(shù))模塊3voidwatchConnectt()監(jiān)聽(tīng)瀏覽器的連接請(qǐng)求模塊4threadwatch=newThread(watchConnectt)實(shí)例化線程模塊5threadwatch.Start()啟動(dòng)線程模塊6voidshowmsg(stringmsg)用來(lái)在txtmsglog文本框中顯示相應(yīng)的連接信息功能3接收請(qǐng)求報(bào)文流程模塊列表模塊名稱(英文)功能備注模塊1publicdelegatevoidDGshowmsg(stringmsg)用來(lái)在控件上顯示消息的委托類型新建類Dataconnection模塊2publicdelegatevoidDGshowmsg(stringmsg)用來(lái)在控件上顯示消息的委托類型新建類Gshowmsg,并用委托類型模塊3publicDataconnection(Socketsokconnection,DGshowmsgdgshow)在Dataconnection類里,通過(guò)在構(gòu)造函數(shù)傳入?yún)?shù)的方式來(lái)傳入與某個(gè)瀏覽器通信的套接字和線程模塊4this.threadconnection=newThread(recmsg);直接在內(nèi)部來(lái)創(chuàng)建通信線程對(duì)象模塊5this.threadconnection.IsBackground=true;this.threadconnection.Start();啟動(dòng)該線程,并將其設(shè)置為后臺(tái)線程arrmsg模塊6length=sokconnection.Receive(arrmsg);將瀏覽器發(fā)來(lái)的數(shù)據(jù)裝入緩存區(qū),并獲得真實(shí)的數(shù)據(jù)長(zhǎng)度模塊7Try{}Catch{}調(diào)用委托對(duì)象來(lái)在文本框中打印異常消息模塊8dgshow(recmsg);在文本框中顯示消息
數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)庫(kù)表列表表名作用conn創(chuàng)建Dataconnection類對(duì)象,并傳入當(dāng)前套接字和線程arrmsg字節(jié)數(shù)組,當(dāng)做緩存區(qū)length用來(lái)存放瀏覽器發(fā)來(lái)的數(shù)據(jù)的長(zhǎng)度recmsg用來(lái)存儲(chǔ)已轉(zhuǎn)換成字符串類型的數(shù)據(jù)功能4分析請(qǐng)求報(bào)文流程模塊列表模塊名稱(英文)功能備注模塊1publicHttpRequestmodel(stringrequeststr){}生成請(qǐng)求報(bào)文實(shí)體對(duì)象,并分析請(qǐng)求報(bào)文字符串,將每個(gè)語(yǔ)義字符都次實(shí)體類的相應(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ù)庫(kù)表列表表名作用path定義頁(yè)面路徑字符串功能5讀取文件流程模塊列表模塊名稱(英文)功能備注模塊1dataDir=System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;獲得瀏覽器請(qǐng)求文件的物理路徑默認(rèn)該請(qǐng)求文件在工程目錄下模塊2Switch(){Case:Case:}根據(jù)請(qǐng)求文件的后綴名不同來(lái)做出不同的判斷模塊3voidProcessstaticPage(stringpath)該方法用來(lái)專門處理靜態(tài)文件模塊4using(FileStreamfs=newFileStream(path,FileMode.Open)){}使用文件流的方式來(lái)讀取文件前提是要為FileStream導(dǎo)入命名空間
數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)庫(kù)表列表表名作用requestModel在dataconnecton類里創(chuàng)建請(qǐng)求報(bào)文實(shí)體對(duì)象dataDir用來(lái)存放當(dāng)前執(zhí)行程序的物理路徑fileDir存儲(chǔ)請(qǐng)求文件的物理路徑extentionName存儲(chǔ)請(qǐng)求文件的后綴名功能6生成響應(yīng)報(bào)文流程模塊列表模塊名稱(英文)功能備注模塊1publicbyte[]GetHttpResponseHeader(){}返回響應(yīng)報(bào)文頭字符串默認(rèn)該請(qǐng)求文件在工程目錄下模塊2returnSystem.Text.Encoding.UTF8.GetBytes(sbResponse.ToString());返回請(qǐng)求文件的字節(jié)數(shù)組模塊3sokconnection.Send(model.GetHttpResponseHeader());利用套接字來(lái)將響應(yīng)報(bào)文頭發(fā)送回去模塊4使用文件流的方式來(lái)讀取文件前提是要為FileStream導(dǎo)入命名空間
數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)庫(kù)表列表表名作用arrfile以二進(jìn)制形式存儲(chǔ)的文件數(shù)據(jù)contentType默認(rèn)的響應(yīng)內(nèi)容的類型sbResponse用來(lái)顯示響應(yīng)報(bào)文頭model生成響應(yīng)報(bào)文頭對(duì)象
附錄第三方組件使用的命名空間:usingSystem;usingSystem.Collections.Gen
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 護(hù)理意識(shí)評(píng)估的老年護(hù)理應(yīng)用
- 婦科護(hù)理中的健康教育
- 第二章第三節(jié)河流第3課時(shí)
- 基于物聯(lián)網(wǎng)的噴泉智能控制架構(gòu)
- 2026 年中職康復(fù)治療技術(shù)類(康復(fù)工程)試題及答案
- 2026 年中職金屬壓力加工(金屬加工基礎(chǔ))試題及答案
- 高速鐵路旅客服務(wù)心理學(xué)電子教案 第二章 高速鐵路旅客服務(wù)與心理學(xué)
- 基于2024年中國(guó)流感監(jiān)測(cè)周報(bào)數(shù)據(jù)的流感暴發(fā)疫情流行特征分析
- 2024年中考道德與法治(陜西)第二次模擬考試(含答案)
- 稅務(wù)登記表 (適用個(gè)體經(jīng)營(yíng))
- 掛名監(jiān)事免責(zé)協(xié)議書模板
- 2025房屋買賣合同范本(下載)
- 分布式光伏電站運(yùn)維管理與考核體系
- 【MOOC期末】《模擬電子技術(shù)基礎(chǔ)》(華中科技大學(xué))期末考試慕課答案
- 腦炎的護(hù)理課件
- 胎頭吸引技術(shù)課件
- 電池PACK箱體項(xiàng)目可行性研究報(bào)告(備案審核模板)
- 貴州省2023年7月普通高中學(xué)業(yè)水平合格性考試地理試卷(含答案)
- 實(shí)施“十五五”規(guī)劃的發(fā)展思路
- 資金無(wú)償贈(zèng)予協(xié)議書
- 課件王思斌:社會(huì)工作概論
評(píng)論
0/150
提交評(píng)論