freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于cs模式下云打印系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文(編輯修改稿)

2025-02-14 16:12 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 ,這樣有效了保證的數(shù)據(jù)安全,是滿足客戶需要的。其次對(duì)于服務(wù)器端功能模塊做下一步的需求分析:當(dāng)服務(wù)器端接收數(shù)據(jù)的時(shí)候?yàn)榱蓑?yàn)證數(shù)據(jù)是否完整那么必須進(jìn)行數(shù)據(jù)校驗(yàn),這樣不至于對(duì)于錯(cuò)誤的數(shù)據(jù)或者不完整的數(shù)據(jù),進(jìn)行排隊(duì)處理,阻塞打印資源。最后對(duì)于打印任務(wù)做短任務(wù)優(yōu)先選擇法進(jìn)行打印排隊(duì),因?yàn)檫@樣單位時(shí)間內(nèi)就可以處理更多的打印任務(wù),解決了更多客戶的打印問題,提高了打印效率,合理分配了打印資源。 服務(wù)器和客戶端時(shí)序圖(1)客戶端的時(shí)序圖,顯示了上傳數(shù)據(jù)時(shí)系統(tǒng)的運(yùn)行過程。上傳數(shù)據(jù)時(shí)系統(tǒng)仍然會(huì)首先顯示界面,首先連接服務(wù)器,如果連接服務(wù)器成功,那么通過客戶載入本地文件就可以實(shí)現(xiàn)對(duì)文件的加密,然后發(fā)送密文件到服務(wù)器,接收連接請(qǐng)求成功后會(huì)自動(dòng)監(jiān)聽數(shù)據(jù)源。(2)服務(wù)器端的時(shí)序圖,服務(wù)器循環(huán)監(jiān)聽,如有客戶端請(qǐng)求連接,那么服務(wù)器端相應(yīng)后,會(huì)對(duì)接收到的密文件進(jìn)行分析,查看數(shù)據(jù)是否完整,如果數(shù)據(jù)不完整,丟棄并添加日志文件,這部分在DEBUG過程中完成,最后如果數(shù)據(jù)校驗(yàn)成功那么對(duì)所有接收到的數(shù)據(jù)進(jìn)行文件名和大小創(chuàng)建內(nèi)存映射表,然后排序輸出個(gè)打印隊(duì)列,最后由打印機(jī)自動(dòng)完成打印任務(wù)。7 小結(jié)本章主要對(duì)系統(tǒng)總體框架進(jìn)行了設(shè)計(jì),再根據(jù)系統(tǒng)框架和具體功能設(shè)計(jì)了類圖。在設(shè)計(jì)流程圖設(shè)計(jì)好后又設(shè)計(jì)流程圖實(shí)現(xiàn)的功能進(jìn)行了細(xì)化,即將各個(gè)模塊的功能具體到每一個(gè)類中,實(shí)現(xiàn)了主要類的設(shè)計(jì)工作。最后畫出了服務(wù)器端和客戶端的順序圖,為系統(tǒng)的實(shí)現(xiàn)提供依據(jù)。系統(tǒng)實(shí)現(xiàn)4系統(tǒng)實(shí)現(xiàn) (1)應(yīng)用客戶端: 應(yīng)用程序:客戶端 開發(fā)語(yǔ)言:C++ 操作系統(tǒng):Windows XP 編譯器:VC++ (2)應(yīng)用服務(wù)器: 應(yīng)用程序:服務(wù)器 操作系統(tǒng):Windows XP CPU:四核以上 內(nèi)存:4GB以上(1)客戶端在數(shù)據(jù)收發(fā)過程中,主要功能的實(shí)現(xiàn)關(guān)鍵代碼實(shí)現(xiàn):void CLANServerClientDlg::OnClient() { // TODO: Add your control notification handler code here m_Type = 1。 (TRUE)。 GetDlgItem(IDC_START_LINK)SetWindowText(連接)。 (AfxGetMainWnd())SetWindowText(客戶機(jī))。}LRESULT CLANServerClientDlg::NETMessage(WPARAM wParam, LPARAM lParam){ CString str。 switch(wParam){ case CLIENTREAD: str = ()。 m_Info = str。 break。 case CLIENTSEND: break。 case CONNECT: m_Info = 已連接上服務(wù)器 !。 break。 case SERVERCLOSE: m_Info = 服務(wù)器已關(guān)閉。 break。 case SERVERREAD: str = ()。 m_Info = str。 break。 case SERVERSEND: break。 case ACCEPT: KillTimer(2)。 m_Info = 已接受客戶機(jī)請(qǐng)求 !。 break。 case CLIENTCLOSE: m_Info = 客戶機(jī)已關(guān)閉。 break。 } UpdateData(false)。 return TRUE。}(2) 客戶端對(duì)數(shù)據(jù)加密功能的實(shí)現(xiàn) 關(guān)鍵代碼:服務(wù)器界面主要有:服務(wù)器綁定IP地址欄、固定端口號(hào)、啟動(dòng)服務(wù)器按鈕。數(shù)字簽名確保文件傳輸安全同時(shí)按大小排序輸出給打印機(jī):const unsigned char MD5::PADDING[64]={0x80}。MD5::MD5(){ state[0]=0x67452301。 state[1]=0xEFCDAB89。 state[2]=0x98BADCFE。 state[3]=0x10325476。}MD5::~MD5(){}bool MD5::setMessage(const char * lhs){ string tem(lhs)。 data = tem。 state[0]=0x67452301。 state[1]=0xEFCDAB89。 state[2]=0x98BADCFE。 state[3]=0x10325476。 return true。}bool MD5::setMessage(const std::string amp。lhs){ data = lhs。 state[0]=0x67452301。 state[1]=0xEFCDAB89。 state[2]=0x98BADCFE。 state[3]=0x10325476。 return true。}MD5::MD5(const char *lhs){ string tem(lhs)。 data = tem。 state[0]=0x67452301。 state[1]=0xEFCDAB89。 state[2]=0x98BADCFE。 state[3]=0x10325476。}MD5::MD5(const std::string amp。lhs){ data = lhs。 state[0]=0x67452301。 state[1]=0xEFCDAB89。 state[2]=0x98BADCFE。 state[3]=0x10325476。}string MD5::Padding(){ //padding string tem。 tem = data。 unsigned int PaddingLen。 union { struct {UINT4 MessageLen,_。}。 unsigned char messageLen[9]。 }message。 = 0。 = () + 8。 PaddingLen = amp。 0x3f。 PaddingLen = 64 PaddingLen。 = 8。 *= 8。 ((const char *)PADDING,PaddingLen)。 ((const char *),8)。 return tem。}(3)服務(wù)器在數(shù)據(jù)接收過程中主要功能的實(shí)現(xiàn):關(guān)鍵代碼實(shí)現(xiàn):void CLANServerClientDlg::OnServer() { // TODO: Add your control notification handler code here m_Type = 0。 (FALSE)。 GetDlgItem(IDC_START_LINK)SetWindowText(啟動(dòng))。 (AfxGetMainWnd())SetWindowText(服務(wù)器)。}void CLANServerClientDlg::OnStartLink() { // TODO: Add your control notification handler code here UpdateData()。 if( !m_Type ) { if( == INVALID_SOCKET) { BOOL bFlag = (m_Port, SOCK_STREAM, FD_ACCEPT)。 if(!bFlag) { MessageBox(網(wǎng)絡(luò)建立錯(cuò)誤 !)。 ()。 return。 } } MessageBox(服務(wù)已啟動(dòng) !)。 //“偵聽”成功,等待連接請(qǐng)求 if(!(1)) { int nErrorCode = ()。 if(nErrorCode = WSAEWOULDBLOCK) { MessageBox(網(wǎng)絡(luò)偵聽錯(cuò)誤 !)。 ()。 return。 } } } else { BYTE a1,a2,a3,a4。 (a1,a2,a3,a4)。 (%d.%d.%d.%d,a1,a2,a3,a4)。 (2)。 ()。 //建立計(jì)時(shí)器,每1秒嘗試連接一次,直到連上或TryCount10 SetTimer(1,500,NULL)。 TryCount=0。 } } 13系統(tǒng)測(cè)試5系統(tǒng)測(cè)試系統(tǒng)測(cè)試是軟件研發(fā)過程中必不可少的一個(gè)部分。主要性體現(xiàn)在于它是能夠保證整個(gè)系統(tǒng)可靠的穩(wěn)定的重要過程,也是對(duì)整個(gè)系統(tǒng)開發(fā)過程中包括系統(tǒng)分析、系統(tǒng)設(shè)計(jì)和系統(tǒng)實(shí)現(xiàn)的最終審查的一個(gè)必不可少的過程。系統(tǒng)測(cè)試就就是尋找問題的過程,在實(shí)際測(cè)試過程中會(huì)遇到大大小小的問題,對(duì)于這些問題的解決和修復(fù)將更好的服務(wù)于客戶。測(cè)試一旦遇到問題,那么要及時(shí)的經(jīng)過BUG調(diào)試找出錯(cuò)誤位置和原因,然后進(jìn)行修正,直到真正能夠正常運(yùn)行為止。這是計(jì)算機(jī)信息系統(tǒng)整體要求進(jìn)行的穩(wěn)定性測(cè)試,系統(tǒng)測(cè)試是正對(duì)整個(gè)計(jì)算機(jī)信息系統(tǒng)進(jìn)行的綜合性測(cè)試,目的是能夠驗(yàn)證系統(tǒng)在滿足了用戶的需求,同時(shí)保證系統(tǒng)的可靠性和穩(wěn)定性,解決系統(tǒng)存在的不足之處。 軟件開發(fā)完成之后,還要進(jìn)行整體系統(tǒng)測(cè)試。單獨(dú)對(duì)系統(tǒng)的測(cè)試主要從以下幾個(gè)方面:(1)功能測(cè)試:測(cè)試是否滿足開發(fā)要求,是否完成開題報(bào)告所描述的功能要求,是否滿足用戶的需求。功能測(cè)試是系統(tǒng)測(cè)試最常用和必須的測(cè)試。 (2)強(qiáng)度測(cè)試及性能測(cè)試:測(cè)試系統(tǒng)能力最高實(shí)際限度,即軟件在一些超負(fù)荷運(yùn)行情況下系統(tǒng)功能實(shí)現(xiàn)的情況。 經(jīng)過上述的測(cè)試過程,對(duì)系統(tǒng)進(jìn)行測(cè)試后,只有測(cè)試結(jié)果能夠滿足系統(tǒng)開發(fā)的要求,測(cè)試才宣告結(jié)束,系統(tǒng)算開發(fā)完成。在在實(shí)驗(yàn)中門用虛擬打印機(jī)來(lái)完成實(shí)驗(yàn)操作步驟,第一步打開虛擬打印機(jī),初始狀態(tài)如圖: 第二步:打開服務(wù)器,并啟動(dòng)服務(wù)器實(shí)施監(jiān)控,如圖: 服務(wù)器啟動(dòng)狀態(tài)圖 第三步:打開本地客戶端,然后連接服務(wù)器,并發(fā)送打印數(shù)據(jù)。 客戶端鏈接并發(fā)送數(shù)據(jù)成功狀態(tài)圖 服務(wù)器成功接收數(shù)據(jù)狀態(tài)圖 第四步:點(diǎn)擊遠(yuǎn)程打印按鈕,選擇要傳輸打印的文件,然后查看虛擬打印機(jī)的狀態(tài)。 在測(cè)試的第二步中服務(wù)器啟動(dòng)成功,通過netstat an 命令查看端口號(hào)狀態(tài):現(xiàn)在端口號(hào)處于LISTENING監(jiān)聽狀態(tài),說(shuō)明測(cè)試過程中服務(wù)器啟動(dòng)成功。 在測(cè)試第三步中客戶端連接服務(wù)器成功,通過netstat an 命令查看客戶端端口和服務(wù)器IP地址狀態(tài):現(xiàn)在客戶端端口號(hào)和本地IP地址與遠(yuǎn)程服務(wù)器IP地址和端口號(hào)處于ESTABLISHED建立連接狀態(tài),說(shuō)明客戶端連接成功了。 在最后一步測(cè)試過程中查看虛擬打印機(jī)的狀態(tài):說(shuō)明要的打印的任務(wù)已經(jīng)被服務(wù)器自動(dòng)加入打印隊(duì)列中,云打印的功能已經(jīng)實(shí)現(xiàn)。17 (1)服務(wù)端啟動(dòng)失敗啟動(dòng)服務(wù)端時(shí)提示錯(cuò)誤,如下圖所示:經(jīng)檢查進(jìn)程列表,原來(lái)是之前運(yùn)行服務(wù)端軟件未正常退出,進(jìn)程中有殘留,關(guān)掉該進(jìn)程后啟動(dòng)成功。(2)多個(gè)服務(wù)器啟動(dòng)時(shí)候提示錯(cuò)誤,如下圖所示: (3)打印機(jī)啟動(dòng)失敗對(duì)于pdf虛擬打印機(jī),啟動(dòng)失敗。通過設(shè)置默認(rèn)打印機(jī)來(lái)解決。 (4)客戶端連接服務(wù)端報(bào)錯(cuò)通過修改客戶端端口為服務(wù)端偵聽端口來(lái)解決。 6 總結(jié)與展望針對(duì)當(dāng)今社會(huì)傳統(tǒng)打印存在的問題,這款軟件提供了良好的解決方案。通過測(cè)試證明,該軟件能實(shí)現(xiàn)針對(duì)用戶和打印任務(wù)進(jìn)行有效的監(jiān)控,為廣大用戶的打印資源進(jìn)行了管理,提供了方便快捷的途徑。當(dāng)然軟件本身還不夠完善,比如在客戶端應(yīng)該添加VIP和普通客戶登錄的選項(xiàng),在服務(wù)器端對(duì)打印頁(yè)數(shù)統(tǒng)計(jì)地功能,服務(wù)器對(duì)VIP客戶選擇更靈活的打印方法等等,還需要一個(gè)改進(jìn)的過程,以后有機(jī)會(huì)會(huì)繼續(xù)完善它。對(duì)于未來(lái)的打印要求,還可以向商業(yè)化發(fā)展,把這個(gè)款軟件完善其功能,使其具有客戶注冊(cè)登錄功能,其次對(duì)打印的頁(yè)數(shù)做計(jì)費(fèi)操作,另外對(duì)于某些對(duì)打印要求比較緊急的文件,將采用更靈活的調(diào)度算法,不再是簡(jiǎn)單的先來(lái)先服務(wù)或者短作業(yè)優(yōu)先算法,提高打印客戶的打印權(quán)限,使他們第一個(gè)享受打印優(yōu)先權(quán),這樣就可以更合理很人性的解決實(shí)際中的打印問題。參考文獻(xiàn)參考文獻(xiàn)[1] 華軍資訊.[EB/OL].,2013512[2] 查普爾. TCP/IP協(xié)議原理與應(yīng)用[M]. 清華大學(xué)出版社. 2005:142166[3] 百度百科.[EB/OL].,2013512[5] Joseph Paul .Vc++:2002:336457[6] 陳國(guó)建, C++ 范例開發(fā)大全[M].清華大學(xué)出版社,2010[7] C++ Programing Language[M].中國(guó)電力出版社,2012[8] in C++[M].電子工業(yè)出版社,2011[9] 李強(qiáng), C++項(xiàng)目開發(fā)實(shí)踐[M].中國(guó)鐵道出版社,2004[10] 張紅軍, C++編程案例精解[M].電子工業(yè)出版社,2005[11] 祝明慧, C++從入門到精通[M]:,2011[12] 劉月寧, C++開發(fā)實(shí)戰(zhàn)1200例[M].清華大學(xué)出版社,2011[13] Lvor C++入門經(jīng)典(美)[M].清華大學(xué)出版社,2010[14] C++[M].清華大學(xué)出版社,2011
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1