




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于cs模式下云打印系統(tǒng)的設計與實現(xiàn)版權聲明任何收存和保管本論文各種版本的單位和個人,未經本論文作者同意,不得將本論文轉借他人,亦不得隨意復制、抄錄、拍照或以任何方式傳播。否則,引起有礙作者著作權之問題,將可能承擔法律責任。原創(chuàng)性聲明本人鄭重聲明:所呈交的學位論文,是本人在導師的指導下,獨立進行研究工作所取得的成果。除文中已經注明引用的內容外,本論文不含任何其他個人或集體已經發(fā)表或撰寫過的作品或成果。對本文的研究做出重要貢獻的個人和集體,均已在文中以明確方式標明,本聲明的法律結果由本人承擔。論文作者簽名: 日期: 年 月 日基于c/s模式下云打印系統(tǒng)的設計與實現(xiàn)f u(安康學院電子信息工程系,
2、陜西安康,725000)摘 要 隨著“云”概念地引入,在對“云”概念理解基礎上,為了解決傳統(tǒng)聯(lián)機打印(網絡共享打印)的不足之處,同時高效率地解決繁瑣的打印任務,云打印地實現(xiàn)有著重要的意義。論文中研究基于c/s模式下系統(tǒng)的設計與實現(xiàn),在數據收發(fā)基礎上了增加了客戶端對數據地加密和服務器端對接收的文件,文件名稱和大小創(chuàng)建內存映射表并排序輸出給打印機的功能,以vc+6.0為開發(fā)工具,采用windows的核心編程技術內存管理和多線程操作對數據進行高效處理,在windowsxp平臺完成云打印的功能。為了確保數據安全完整和服務器高效地處理大量的數據,著重研究了網絡通訊的數據安全和內存管理、內存映射技術。在檢
3、測客戶端和云端服務器數據是否有變更時,采用md5技術生成服務器中存放文件的md5摘要和最新的客戶端測到得md5摘要對比,確保數據完整。在服務器接收大量數據的時候,對文件名和大小創(chuàng)建內存映射表,然后通過對內存地址地訪問,來訪問數據,實現(xiàn)了高效和快速處理數據的功能。經測試,系統(tǒng)運行正常、良好,能夠實現(xiàn)云打印功能。 關鍵詞 c/s模式;數字簽名;內存映射表design and implementation of the cloud print system based on c/s mode jing qi(department of electronic and information engin
4、eering,ankang university,ankang,725000)abstract with the introduction of the cloud consept,the implementation of the cloud printing based on the understanding of the cloud concept has an important significance ,which is used to solve the inadequacies of the the traditional online printing (shared ne
5、twork printing) and complicated printing tasks efficiently.the paper design and mplementation of the cloud print system based on c/s mode .it adds the function of the encryption of the data by the client and creating a memory mapping table output to the print queue based on the received text ,which
6、uses the vc+ 6.0 as a tool and adopts windowss core programming technology of memory management and multi-threaded operation to deal with the data efficiently.it complete cloud printing in windowsxp platform. to ensure the security of data network communication and servers processing large amounts o
7、f data efficiently,the paper focuses on digital signature technology and the techniques of memory management and memory mapping .when detecting whether the data of the client and the server changes or not,it compares md5 summaries used md5 technology to generate files stored in the server wite md5 s
8、ummaries measured by the latest client to ensure the integrity of the data .when the server receives large amounts of data, it creates a memory mapping table on the file name and size .then it obtains the data by visiting the memory address,achieving the function of dealing with the data quickly and
9、 efficiently. after testing, the system is operating normally and can achieve the function of cloud printing .key words c/s mode; digital signature;memory mapping table目 錄1緒論11.1課題背景與提出11.2 國內外研究現(xiàn)狀11.3研究的目的和意義22系統(tǒng)可行性分析32.1技術可行性32.1.1 網絡通訊的設計原理32.1.2客戶端機與服務器模型52.1.3網絡通信的數據安全62.1.4內存管理,內存映射技術82.1.5虛擬打
10、印技術82.2操作可行性92.3經濟可行性92.4小結93 系統(tǒng)分析與設計103.1系統(tǒng)開發(fā)工具及簡介103.2 系統(tǒng)總體框架113.2.1設計流程圖113.2.2 系統(tǒng)類圖123.3 功能模塊設計133.3.1 基本功能模塊133.3.2 服務器和客戶端時序圖143.4 小結164系統(tǒng)實現(xiàn)174.1系統(tǒng)開發(fā)環(huán)境174.2系統(tǒng)各功能模塊的實現(xiàn)175系統(tǒng)測試235.1系統(tǒng)測試目的與意義235.2測試過程235.3測試結果255.4問題及解決276 總結與展望28參考文獻30致 謝32 1緒論1.1課題背景與提出 目前傳統(tǒng)的打印模式,基本處于人工管理階段,缺乏有效的管理手段和工具,造成打印資源浪費
11、,而且對打印文件沒有進行必要的安全處理,使打印機密泄漏。在如今這個信息化管理的時代,網絡調度打印是未來發(fā)展的趨勢,因為它沒有地域的限制,不需要手持打印文件,去尋找打印終端,只需要一款合適的軟件,就可以達到網絡傳輸文件給遠程打印終端實現(xiàn)打印的目的,簡單安全,推動了打印行業(yè)的發(fā)展,符合了更多企業(yè)和部門的打印要求。傳統(tǒng)的打印方式最直觀的打印方式就是打印共享。一臺打印機連接在網絡上,單位有很多電腦都可以遠程操控打印機來打印文檔,但是假如現(xiàn)在有急事,想要優(yōu)先打印,那么就得提升權限為單機共享,可是這樣妨礙了別的人對打印機的使用,同時如果打印任務龐大,會阻塞更多的等候打印的任務。在短時間內效率不高,使打印資
12、源浪費。本文通過網絡調度打印這種方式,來實現(xiàn)打印資源的合理分配,其次減少了大量的人為操作,只需要通過客戶端對文件的提取和發(fā)送給遠程服務器,遠程服務器會自動接收數據,并通過短任務優(yōu)先算法,加入打印隊列等候打印機打印,為人們今后的生活提供了更多便捷。1.2 國內外研究現(xiàn)狀 2011年4月 google 第一次對外宣布了云打印計劃1,這一功能不但可以讓遠程無線打印成為現(xiàn)實,更解決了手持設備打印不方便的問題,本系統(tǒng)從中提取了“云打印”的思想并總結了制作思路,為制作本軟件奠定了基礎。 截至今日,chrome 中的云打印已經基本可用,而另外一方面 google 的合作伙伴 hp 也在今天隆重發(fā)布了全系列支
13、持云打印的無線打印機,用戶可以從 cr-48,移動版 gmail 和 google docs 等支持云打印的應用中直接打印到這些打印機上。 當使用 google 云打印進行打印時,文件會通過網絡安全地發(fā)送到的打印機。由于打印工作是通過網絡進行的,因此無論與打印機的距離是遠是近,google 云打印都能工作。無論用的是手機、傳統(tǒng)的臺式機還是介于兩者之間的設備(如平板電腦),都可以使用 google 云打印。 借助云端打印機,能立即體驗谷歌云打印。由于云端打印機可以通過家中或辦公室的無線網絡直接注冊谷歌云打印服務,因此能隨時使用。此外,因為云端打印機總是會連接到網絡,所以其驅動程序和固件無需的干預
14、即可更新至最新狀態(tài)。谷歌云打印還支持傳統(tǒng)的非云端打印機,因此可以使用現(xiàn)有的任意打印機立即開始體驗。 谷歌云打印是通過軟件實現(xiàn)與遠程打印服務器的連接,只要擁有打印資源,便可以通過互聯(lián)網通訊實現(xiàn),手機或者pc客戶機軟件實現(xiàn)數據發(fā)送給遠程云端打印,然而本文研究的是一種網絡數據傳輸打印,對于數據的安全和數據的完整提供了更高的要求。1.3研究的目的和意義對于如今的很多大小型企業(yè)和學校甚至政府單位來說,如果遇到大量的打印任務,那么對于傳統(tǒng)的打印方式來說,肯定會耗費大量的打印時間,對于人力和財力無意是一種損耗。因為打印資源有限,合理的分配打印資源,如何讓打印資源充分利用是存在的問題;其次在時間上非正常的工作
15、時間,打印機沒有人為操作,就不能進行有效及時的打印;有時候打印的數據在傳播過程中會造成不必要的損失甚至丟失,這樣打印就不能正常進行,所以在保證數據完整和安全的前提下,對大量打印數據進行統(tǒng)一的管理和無人值守操作的自動打印調度是完全符合廣大客戶的需求。通過網絡調度打印推動了信息化社會信息的快速交流,利用網絡傳輸達到了快速、高效、安全,節(jié)省了人力、財力、物力,讓有限的打印資源能夠合理充分使用的同時,提高了生產力,為更多的打印商提供了創(chuàng)造財富的新途徑,足不出戶,就可以收到各地發(fā)來的打印訂單,第一時間解決客戶的打印問題,也創(chuàng)造了利益。其次對于各大企業(yè)和學校來說網絡調度打印的實現(xiàn),解決了更多人為了爭奪優(yōu)先
16、的打印資源,排隊等候,耗費大量時間,對于緊急的打印任務不能及時打印造成不良的后果等諸多問題。網絡調度打印不僅僅是解決人們的打印問題,還可以對其功能的改進和擴展,以適應更多類似的服務行業(yè),高效的解決顧客的需求。比如餐飲業(yè),可以發(fā)展成為一個網絡調度訂餐系統(tǒng),這樣可以隨時隨地,解決客戶的就餐問題;比如訂票問題,通過這個調度打印可以第一時間解決客戶的乘車出行問題等等,也就是說,網絡調度打印它不僅僅是一個系統(tǒng)軟件,不僅僅只針對打印問題,它是可以擴展和延伸地,對于各個行業(yè)都可以涉及到,對于今后很多問題都可以合理化解決,這就是本系統(tǒng)軟件最大的意義之所在。2系統(tǒng)可行性分析2.1技術可行性 2.1.1 網絡通訊
17、的設計原理tcp/ip是國際互聯(lián)網所采用進行網際互連的通信協(xié)議。ip互連協(xié)議(internet protocol),負責主機之間的傳輸數據。tcp傳輸控制協(xié)議(transmission control protocol),負責在應用程序之間傳遞數據。實際所稱的tcp/ip協(xié)議包括了在國際互聯(lián)網上應用的一組協(xié)議,互聯(lián)網協(xié)議組是此協(xié)議組的另一個名字。這個協(xié)議組包括幾種工作在不同層次上的網絡協(xié)議,udp用戶數據報協(xié)議(user datagram protocol),提供給用戶進程的無連接協(xié)議,也負責在應用程序之間無連接傳遞數據,但不執(zhí)行正確性檢查。icmp互連網控制報文協(xié)議(internet con
18、trol message protocol),處理主機間的差錯和傳送控制。arp地址解析協(xié)議(address resolution protocol),負責將網絡層地址轉換成鏈路層地址。rarp反向地址解析協(xié)議(reverse address resolution protocol),負責將鏈路層地址轉換成網絡層地址。tcp/ip協(xié)議的核心是傳輸層協(xié)議(tcp、udp)、網絡層協(xié)議(ip)和物理接口層,這三層通常在操作系統(tǒng)的內核中實現(xiàn)。tcp/ip網絡環(huán)境下的應用程序設計是通過網絡系統(tǒng)編程界面socket實現(xiàn)的,socket提供應用程序與系統(tǒng)內核之間的網絡編程接口。協(xié)議可以是可靠的可以是不可靠
19、的??煽康膮f(xié)議意味著當數據通過協(xié)議傳遞時,協(xié)議保證數據正確傳輸??煽總鬏敯◣讉€特征。首先,為了確保數據正確傳送,協(xié)議在通信應用程序之間互相交換確認信息。也就是說,程序每次發(fā)送一個報文時,都期望對方發(fā)送確認信息。如果發(fā)送程序沒有收到這樣一個確認信息,程序將自動重新發(fā)送此報文,直到得到應答信息為止。其次,為了確保傳輸的數據有效,可靠協(xié)議在每次傳輸時,都包含一個或更多的校驗和(crc)。接收計算機重新計算校驗碼,再與收到的校驗和進行比較。如果不匹配,就表明在傳輸過程中發(fā)生了錯誤。傳輸控制協(xié)議tcp是一個使用校驗和確認信息以及其它可靠數據傳輸技術的可靠協(xié)議。相比之下,不可靠協(xié)議不能確保數據正確傳輸。
20、協(xié)議試圖傳輸數據,但不保證成功。而且,不可靠協(xié)議在傳輸失敗后,并不通知發(fā)送方??蓪⒉豢煽繑祿鬏敱茸鳑]有返回地址的信件。如果發(fā)送地址是錯誤的,由于郵遞系統(tǒng)不能將信退回給,所以就不知道信件有沒有送到。即使發(fā)送地址是正確的,也不能保證郵遞系統(tǒng)不丟失的信件。tcpip協(xié)議組中存在的兩個基本數據服務是:字節(jié)流服務和數據報服務。使用字節(jié)流的協(xié)議將信息看作一串字節(jié)流進行傳輸。協(xié)議不管要求發(fā)送或接收數據的長度和傳送數目,只是將數據看作一個簡單的字節(jié)串流。使用數據報的協(xié)議將信息視作一個獨立單元進行傳輸。協(xié)議單獨發(fā)一個數據報,與此同時數據報之間不相互依賴。例如,假設使用字節(jié)流協(xié)議發(fā)送5個數據段(每個有10字節(jié))
21、和一個包含50字節(jié)的數據段(總共100字節(jié))。連接的接收方可以按每次20字節(jié)讀數據(要讀5次)。傳輸控制協(xié)議是字節(jié)流協(xié)議。字節(jié)流協(xié)議不關心每個數據段的長度。如果應用程序使用字節(jié)流協(xié)議發(fā)送數據,則協(xié)議能夠保證連接的另一端按照發(fā)送的順序接收數據。相比之下,傳輸到同一目的地的多個數據報可能不會按發(fā)送順序到達。如果接收方應用程序要求數據順序一致,應用程序必須在數據到達后,校對這些數據。用戶數據報協(xié)議和互連網協(xié)議使用數據報傳輸數據。數據報類似于信件。在tcp/ip術語中,端口(port)類似于ip地址,ip地址與主機地址是相聯(lián)系的,端口和協(xié)議相聯(lián)系。ip數據報保存目的和源ip地址,同樣傳輸協(xié)議也保存源和
22、目的端口號。internet包括像ftp、telnet和mail這樣廣泛使用的應用程序采用的應用協(xié)議,在internet上,這些應用程序使用一種叫做“通用口分配”的端口。通用口分配是特定應用程序廣泛使用的一個協(xié)議端口。22.1.2客戶端機與服務器模型(client/server或客戶/服務器模式):client和server常常分別處在相距很遠的兩臺計算機上,client程序的任務是將用戶的要求提交給server程序,再將server程序返回的結果以特定的形式顯示給用戶;server程序的任務是接收客戶程序提出的服務請求,進行相應的處理,再將結果返回給客戶程序。傳統(tǒng)的c/s體系結構雖然采用的是
23、開放模式,但這只是系統(tǒng)開發(fā)一級的開放性,在特定的應用中無論是client端還是server端都還需要特定的軟件支持。由于沒能提供用戶真正期望的開放環(huán)境,c/s結構的軟件需要針對不同的操作系統(tǒng)開發(fā)不同版本的軟件, 加之產品的更新?lián)Q代十分快,已經很難適應百臺電腦以上局域網用戶同時使用。而且代價高, 效率低。c/s 結構的基本原則是將計算機應用任務分解成多個子任務,由多臺計算機分工完成,即采用“功能分布”原則。客戶端完成數據處理,數據表示以及用戶接口功能;服務器端完成dbms的核心功能。這種客戶請求服務、服務器提供服務的處理方式是一種新型的計算機應用模式。c/s結構的優(yōu)點是能充分發(fā)揮客戶端pc的處理
24、能力,很多工作可以在客戶端處理后再提交給服務器。對應的優(yōu)點就是客戶端響應速度快。具體表現(xiàn)在以下兩點:(1)應用服務器運行數據負荷較輕。最簡單的c/s體系結構的數據庫應用由兩部分組成,即客戶應用程序和數據庫服務器程序。二者可分別稱為前臺程序與后臺程序。運行數據庫服務器程序的機器,也稱為應用服務器。一旦服務器程序被啟動,就隨時等待響應客戶程序發(fā)來的請求;客戶應用程序運行在用戶自己的電腦上,對應于數據庫服務器,可稱為客戶電腦,當需要對數據庫中的數據進行任何操作時,客戶程序就自動地尋找服務器程序,并向其發(fā)出請求,服務器程序根據預定的規(guī)則作出應答,送回結果,應用服務器運行數據負荷較輕。(2)數據的儲存管
25、理功能較為透明。在數據庫應用中,數據的儲存管理功能,是由服務器程序和客戶應用程序分別獨立進行的,并且通常把那些不同的前臺應用所不能違反的規(guī)則,在服務器程序中集中實現(xiàn),例如訪問者的權限,編號可以重復、必須有客戶才能建立這樣的規(guī)則。2.1.3網絡通信的數據安全(1) 網絡通信的數據安全包括以下幾個方面:1) 數據傳輸的安全性,數據傳輸的安全性是保證在公網上傳輸的數據不被第三方竊取。2) 數據完整性對數據的完整性需求是指數據在傳輸過程中不被篡改。3) 身份驗證在網上的通信雙方互不見面,必須在相互通信時確認對方的真實身份。4) 不可抵賴性在網絡通信中開展業(yè)務的各方在進行數據傳輸時,必須帶有自身持有的、
26、無法被別人復制的信息,以保證發(fā)生糾紛時有所對證。通常情況下,網絡通信中采用的安全技術主要有防火墻技術、數據加密技術和身份認證技術等。本文討論的重點是數據加密技術在網絡安全策略中的應用。(2) 數字指紋技術數字指紋是一種形象的說法,在密碼學上被稱為“信息摘要”。它是通過安全的單向散列函數作用于將要發(fā)送的信息上產生的:message digest =secure hash(message)單向散列函數有三個主要特點:1) 它能處理任意大小的信息,并將其按信息摘要(message digesgt)方法生成固定大小的數據塊,對同一個源數據反復執(zhí)行secure hash函數將總是得到同樣的結果。2) 它
27、是不可預見的。產生的數據塊的大小與原始信息的大小沒有任何聯(lián)系,同時源數據和產生的數據塊看起來也沒有明顯關系,源信息的一個微小的變化都會對小數據塊產生很大影響。3) 它是完全不可逆的,沒有辦法通過生成的數據塊直接回復源數據。數字指紋技術不是一種加密機制,但卻能產生信息的數字“指紋”,通過驗證信息的“指紋”來確保數據沒有被修改或變化,保證信息的完整性不被破壞。常用的信息摘要算法有:md2、md5和sha-1等。3) 數字簽名 數字簽名是用來保證信息傳輸過程中信息的完整和提供信息發(fā)送者的身份驗證和不可抵賴性的一種安全技術。2.1.4內存管理,內存映射技術內存管理,是指軟件運行時對計算機內存資源的分配
28、和使用的技術。其最主要的目的是如何高效,快速的分配,并且在適當的時候釋放和回收內存資源。一個執(zhí)行中的程序,譬如網頁瀏覽器在個人電腦里將資料轉換于真實世界及電腦內存之間,然后將資料存于電腦內存內部的過程。內存映射文件,是由一個文件到一塊內存的映射。win32提供了允許應用程序把文件映射到一個進程的函數 (createfilemapping)。內存映射文件與虛擬內存有些類似,通過內存映射文件可以保留一個地址空間的區(qū)域,同時將物理存儲器提交給此區(qū)域,內存文件映射的物理存儲器來自一個已經存在于磁盤上的文件,而且在對該文件進行操作之前必須首先對文件進行映射。使用內存映射文件處理存儲于磁盤上的文件時,將不
29、必再對文件執(zhí)行i/o操作,使得內存映射文件在處理大數據量的文件時能起到相當重要的作用。內存映射文件與虛擬內存有些類似,通過內存映射文件可以保留一個地址空間的區(qū)域,同時將物理存儲器提交給此區(qū)域,只是內存文件映射的物理存儲器來自一個已經存在于磁盤上的文件,而非系統(tǒng)的頁文件,而且在對該文件進行操作之前必須首先對文件進行映射,就將整個文件從磁盤加載到內存。由此可以看出,使用內存映射文件處理存儲于磁盤上的文件時,將不必再對文件執(zhí)行i/o操作,這意味著在對文件進行處理時將不必再為文件申請并分配緩存,所有的文件緩存操作均由系統(tǒng)直接管理,由于取消了將文件數據加載到內存、數據從內存到文件的回寫以及釋放內存塊等步
30、驟,使得內存映射文件在處理大數據量的文件時能起到相當重要的作用。另外,實際工程中的系統(tǒng)往往需要在多個進程之間共享數據,如果數據量小,處理方法是靈活多變的,如果共享數據容量巨大,那么就需要借助于內存映射文件來進行。實際上,內存映射文件正是解決本地多個進程間數據共享的最有效方法。 2.1.5虛擬打印技術虛擬打印機,實際的打印驅動安裝在打印服務器端,將打印數據轉換為版式文件或者其他指定格式的文件,實現(xiàn)監(jiān)控的目的是一個虛擬打印驅動程序。這樣可以對每臺client客戶機的所有應用程序都屏蔽除了虛擬打印機以外的所有打印機,使打印數據必須經過虛擬打印的打印機處理;最后由虛擬打印機將打印數據轉發(fā)到真正的打印服
31、務器完成打印任務。虛擬打印機,它是一種軟件,能模擬真實打印機的功能,打印文件。安裝完畢,打開“控制面板”中的“打印機和傳真”,會看到所安裝的虛擬打印機,可以模擬真實的打印機環(huán)境。鼠標雙擊將其打開,可以對其“打印首選項”和“屬性”進行修改,從而設定是否共享、可使用時間、是否后臺打印和優(yōu)先級,以及紙張大小、版式安排等。它們同樣能截獲所有windows程序的打印操作,或模擬打印效果,或完成某一特殊功能。有些軟件自帶虛擬打印機,有些則是專門的虛擬打印機,利用這些虛擬打印機,可以幫助完成很多特殊的任務。虛擬打印機的打印文件是以某種特定的格式保存在電腦上。 2.2操作可行性網絡調度打印軟件的可視化相當好,
32、信息簡單明了,用戶操作簡單,對操作人員的使用技術水平要求很低,幾乎無技術要求只需對操作系統(tǒng)使用熟練,即可手工作操作。在操作技術上也具備可行性。與此同時每一個按鈕都有注明的文字,這對按鈕的操作簡單明了,ip地址欄上面有注明的服務器ip地址和端口號,用戶只需要從客戶端手動輸入ip地址和端口號就可以連接遠程服務器,不需要賬號和密碼,這在一定程度降低了客戶的操作難度,而且服務器的自動調度減去了以往要手動打開打印機,然后選擇要打印的文件,進而執(zhí)行打印操作,一連貫的繁瑣操作,服務器會自動接收文件,對文件進行自動加入打印隊列,最后自動調度打印機打印的,所以綜上所述操作具有可行性。2.3經濟可行性任何系統(tǒng)項目
33、的開發(fā),都會受到資源和時間上的限制。因此,在每一個項目開始開發(fā)之前,都要進行全面的具體的可行性分析,這樣可以最大限度的減少項目開發(fā)風險,避免大量的人力、物力的浪費。在當今的信息化高速發(fā)展時代,客戶端服務器管理模式可以滿足多樣化的客戶需求,服務器工作統(tǒng)一化、快速化、整體化。這種模式相對提高了打印的工作效率,提升了打印服務器端的經濟效益,本系統(tǒng)軟件用c/s結構模式,客戶端對計算機配置的要求不高,低配置電腦也可以完全滿足本系統(tǒng)的需求,滿足用戶的使用需要。同時,服務器在管理工作上的高效率和便捷性遠遠超出了本系統(tǒng)所開發(fā)的成本,在經濟方面具有可行性。 2.4小結 本章主要課題背景和現(xiàn)狀,課題研究的目的和意
34、義,并對課題工作做出了規(guī)劃安排。最后簡要介紹了本課題開發(fā)所采用的相關工具和技術。 3 系統(tǒng)分析與設計3.1系統(tǒng)開發(fā)工具及簡介(1)本系統(tǒng)服務器處理的數據量大,對帶寬要求高,其次對于內存和cup性能要求高。(2)visual c+6.0由microsoft開發(fā), 它不僅是一個c+ 編譯器,而且是一個基于windows操作系統(tǒng)的可視化集成開發(fā)環(huán)境(integrated development environment,ide)。visual c+6.0由許多組件組成,包括編輯器、調試器以及程序向導appwizard、類向導class wizard等開發(fā)工具。 這些組件通過一個名為developer
35、studio的組件集成開發(fā)環(huán)境。microsoft的主力軟件產品。visual c+是一個功能強大的可視化軟件開發(fā)工具。自1993年microsoft公司推出visual c+1.0后,visual c+已成為專業(yè)程序員進行軟件開發(fā)的首選工具。visual c+6.0以擁有“語法高亮”,自動編譯功能以及高級除錯功能而著稱。比如,它允許用戶進行遠程調試,單步執(zhí)行等。還有允許用戶在調試期間重新編譯被修改的代碼,而不必重新啟動正在調試的程序。其編譯及創(chuàng)建預編譯頭文件(stdafx.h)、最小重建功能及累加連結。 developer studio是一個集成開發(fā)環(huán)境,日常工作的99%都是在它上面完成的。
36、雖然developer studio提供了一個很好的編輯器和很多wizard,但實際上它沒有任何編譯和鏈接程序的功能。developer studio并不是專門用于vc的,它也同樣用于vb,vj,vid等。platform sdk是visual c+和整個visual studio的核心功能,platform sdk是以microsoft c/c+編譯器為核心,配合masm,輔以其他一些工具和文檔資料。developer studio沒有編譯程序的功能,cl、nmake和其他許多的命令行程序,是構成visual studio的基石。結論:通過vc6.0豐富多彩的功能完全有能力在windows平
37、臺設上設計出符合要求的軟件。 3.2 系統(tǒng)總體框架3.2.1設計流程圖根據客戶的實際情況,為了能夠盡量滿足各種用戶需求,在進行基于客戶端服務器的網絡調度打印系統(tǒng)的技術方案設計時,采用c/s模式來進行設計。根據客戶端和服務器結構的要求,系統(tǒng)平臺共分成2部分:客戶端、服務器。圖3.1設計流程圖 客戶端要執(zhí)行以下幾個步驟: (1)初始化socket (2)讀取端口號和ip地址 (3)與服務器建立連接 (4)載入本地打印數據 (5)對數據進行md5數據加密 (6)發(fā)送文件到指定端口服務器。服務器主要負責對數據的接收、校驗、輸出提交給打印機服務器端執(zhí)行以下幾步驟: (1)初始化socket (2)綁定端
38、口和ip地址 (3)創(chuàng)建端口偵聽,啟動多線程循環(huán)監(jiān)聽鏈接 (4)接收數據 (5)對數據進行校驗,確保數據是否完整 (6)如果數據不完整,丟棄并添加日志 3.2.2 系統(tǒng)類圖圖3.2系統(tǒng)類圖 (1)clanserverclientapp繼承cwinapp實現(xiàn)windows 操作系統(tǒng)的應用程序的初始化、運行和終止 。 (2)caboutdlg繼承cdialog用戶在屏幕上顯示的對話框。也就是初始化定義了一些提示對話框。如服務器啟動按鈕其中dodataexchang實現(xiàn)主對話框和提示對話框的交互。(3)clanserverclientdlg繼承cdialog在屏幕上顯示的對話框(主對話框),該類為主
39、類調用clansocketclient類實例實現(xiàn)客戶端操作;調用clansocketserver實例實現(xiàn)服務器端操作。(4)clansocket類繼承casycsocket,clansocketclient調用該類方法,為客戶端操作提供服務(5)clansocketclient類繼承casycsocket實現(xiàn)客戶端的操作,客戶端可以有多個實例6.clansocketserver類繼承casycsocket實現(xiàn)服務器端操作,服務器端只有一個,用多線程監(jiān)聽管理客戶端。3.3 功能模塊設計3.3.1 基本功能模塊圖3.3基本功能模塊圖首先對于客戶端做功能模塊的分析:客戶端面對的是廣大持有移動設備的客
40、戶群體,所以對于移動設備的性能要求不高,并且界面設置簡單化,操作容易,上手快,適合每一個客戶的需求。打印客戶端通過輸入遠程服務器端的ip地址,然后點擊鏈接,客戶端就可以通過讀取服務器端ip,自動分配與之綁定的端口,實現(xiàn)基于tcp/ip協(xié)議的網絡通訊,這樣只要有可以聯(lián)網的移動設備,那么數據就可以完成簡單的通訊了。下一步對于數據發(fā)送模塊的需求分析:要把本地文件載入客戶端發(fā)送到遠程服務器過程中,很多時候個人的數據是保密的,不愿意被第三方竊取的,所以對于客戶端來說,在載入本地文件,實現(xiàn)數據發(fā)送的過程,添加了md5數據加密校驗的過程,這樣有效了保證的數據安全,是滿足客戶需要的。其次對于服務器端功能模塊做
41、下一步的需求分析:當服務器端接收數據的時候為了驗證數據是否完整那么必須進行數據校驗,這樣不至于對于錯誤的數據或者不完整的數據,進行排隊處理,阻塞打印資源。最后對于打印任務做短任務優(yōu)先選擇法進行打印排隊,因為這樣單位時間內就可以處理更多的打印任務,解決了更多客戶的打印問題,提高了打印效率,合理分配了打印資源。 3.3.2 服務器和客戶端時序圖(1)客戶端的時序圖圖3.3客戶端的時序圖圖3.3描述了從客戶端到遠程服務器的數據上傳,顯示了上傳數據時系統(tǒng)的運行過程。上傳數據時系統(tǒng)仍然會首先顯示界面,首先連接服務器,如果連接服務器成功,那么通過客戶載入本地文件就可以實現(xiàn)對文件的加密,然后發(fā)送密文件到服務
42、器,接收連接請求成功后會自動監(jiān)聽數據源。(2)服務器端的時序圖圖3.4服務器端的時序圖圖3.4描述了從服務器端接收數據的過程,服務器循環(huán)監(jiān)聽,如有客戶端請求連接,那么服務器端相應后,會對接收到的密文件進行分析,查看數據是否完整,如果數據不完整,丟棄并添加日志文件,這部分在debug過程中完成,最后如果數據校驗成功那么對所有接收到的數據進行文件名和大小創(chuàng)建內存映射表,然后排序輸出個打印隊列,最后由打印機自動完成打印任務。3.4 小結本章主要對系統(tǒng)總體框架進行了設計,再根據系統(tǒng)框架和具體功能設計了類圖。在設計流程圖設計好后又設計流程圖實現(xiàn)的功能進行了細化,即將各個模塊的功能具體到每一個類中,實現(xiàn)了
43、主要類的設計工作。最后畫出了服務器端和客戶端的順序圖,為系統(tǒng)的實現(xiàn)提供依據。4系統(tǒng)實現(xiàn)4.1系統(tǒng)開發(fā)環(huán)境 (1)應用客戶端: 應用程序:客戶端 開發(fā)語言:c+ 操作系統(tǒng):windows xp 編譯器:vc+ (2)應用服務器: 應用程序:服務器 操作系統(tǒng):windows xp cpu:四核以上 內存:4gb以上4.2系統(tǒng)各功能模塊的實現(xiàn)(1)客戶端在數據收發(fā)過程中,主要功能的實現(xiàn)關鍵代碼實現(xiàn):void clanserverclientdlg:onclient() / todo: add your control notification handler code herem_type = 1;
44、m_ip.enablewindow(true);getdlgitem(idc_start_link)-setwindowtext(連接);(afxgetmainwnd()-setwindowtext(客戶機);lresult clanserverclientdlg:netmessage(wparam wparam, lparam lparam)cstring str;switch(wparam)case clientread:str = m_socketclient.getmessstr();m_info = str;break;case clientsend:break;case conne
45、ct:m_info = 已連接上服務器 !;break;case serverclose:m_info = 服務器已關閉;break;case serverread:str = m_socketserver.getmessstr();m_info = str;break;case serversend:break;case accept:killtimer(2);m_info = 已接受客戶機請求 !;break;case clientclose:m_info = 客戶機已關閉;break;updatedata(false);return true;(2) 客戶端對數據加密功能的實現(xiàn) 關鍵代碼
46、:服務器界面主要有:服務器綁定ip地址欄、固定端口號、啟動服務器按鈕。數字簽名確保文件傳輸安全同時按大小排序輸出給打印機:const unsigned char md5:padding64=0x80;md5:md5()state0=0x67452301;state1=0xefcdab89;state2=0x98badcfe;state3=0x10325476;md5:md5()bool md5:setmessage(const char * lhs)string tem(lhs);data = tem;state0=0x67452301;state1=0xefcdab89;state2=0x9
47、8badcfe;state3=0x10325476;return true;bool md5:setmessage(const std:string &lhs)data = lhs;state0=0x67452301;state1=0xefcdab89;state2=0x98badcfe;state3=0x10325476;return true;md5:md5(const char *lhs)string tem(lhs);data = tem;state0=0x67452301;state1=0xefcdab89;state2=0x98badcfe;state3=0x10325476;md
48、5:md5(const std:string &lhs)data = lhs;state0=0x67452301;state1=0xefcdab89;state2=0x98badcfe;state3=0x10325476;string md5:padding()/paddingstring tem;tem = data;unsigned int paddinglen;union struct uint4 messagelen,_;unsigned char messagelen9;message;message._ = 0;message.messagelen = tem.length() +
49、 8;paddinglen = message.messagelen & 0x3f;paddinglen = 64 - paddinglen;message.messagelen -= 8;message.messagelen *= 8;tem.append(const char *)padding,paddinglen);tem.append(const char *)message.messagelen,8);return tem;(3)服務器在數據接收過程中主要功能的實現(xiàn):關鍵代碼實現(xiàn):void clanserverclientdlg:onserver() / todo: add you
50、r control notification handler code herem_type = 0;m_ip.enablewindow(false);getdlgitem(idc_start_link)-setwindowtext(啟動);(afxgetmainwnd()-setwindowtext(服務器);void clanserverclientdlg:onstartlink() / todo: add your control notification handler code hereupdatedata();if(!m_type )if(m_socketserver.m_hsoc
51、ket = invalid_socket) bool bflag = m_socketserver.create(m_port, sock_stream, fd_accept);if(!bflag) messagebox(網絡建立錯誤 !); m_socketserver.close(); return;messagebox(服務已啟動 !);/“偵聽”成功,等待連接請求if(!m_socketserver.listen(1) int nerrorcode = m_socketserver.getlasterror(); if(nerrorcode = wsaewouldblock) mess
52、agebox(網絡偵聽錯誤 !); m_socketserver.close(); return; elsebyte a1,a2,a3,a4;m_ip.getaddress(a1,a2,a3,a4);m_serveradr.format(%d.%d.%d.%d,a1,a2,a3,a4);m_socketclient.shutdown(2);m_socketclient.rest(); /建立計時器,每1秒嘗試連接一次,直到連上或trycount10settimer(1,500,null);trycount=0; 5系統(tǒng)測試5.1系統(tǒng)測試目的與意義系統(tǒng)測試是軟件研發(fā)過程中必不可少的一個部分。主要
53、性體現(xiàn)在于它是能夠保證整個系統(tǒng)可靠的穩(wěn)定的重要過程,也是對整個系統(tǒng)開發(fā)過程中包括系統(tǒng)分析、系統(tǒng)設計和系統(tǒng)實現(xiàn)的最終審查的一個必不可少的過程。系統(tǒng)測試就就是尋找問題的過程,在實際測試過程中會遇到大大小小的問題,對于這些問題的解決和修復將更好的服務于客戶。測試一旦遇到問題,那么要及時的經過bug調試找出錯誤位置和原因,然后進行修正,直到真正能夠正常運行為止。這是計算機信息系統(tǒng)整體要求進行的穩(wěn)定性測試,系統(tǒng)測試是正對整個計算機信息系統(tǒng)進行的綜合性測試,目的是能夠驗證系統(tǒng)在滿足了用戶的需求,同時保證系統(tǒng)的可靠性和穩(wěn)定性,解決系統(tǒng)存在的不足之處。 5.2測試過程軟件開發(fā)完成之后,還要進行整體系統(tǒng)測試。單
54、獨對系統(tǒng)的測試主要從以下幾個方面:(1)功能測試:測試是否滿足開發(fā)要求,是否完成開題報告所描述的功能要求,是否滿足用戶的需求。功能測試是系統(tǒng)測試最常用和必須的測試。 (2)強度測試及性能測試:測試系統(tǒng)能力最高實際限度,即軟件在一些超負荷運行情況下系統(tǒng)功能實現(xiàn)的情況。 經過上述的測試過程,對系統(tǒng)進行測試后,只有測試結果能夠滿足系統(tǒng)開發(fā)的要求,測試才宣告結束,系統(tǒng)算開發(fā)完成。在在實驗中門用虛擬打印機來完成實驗操作步驟,第一步打開虛擬打印機,初始狀態(tài)如圖:圖5.1虛擬機打開初始狀態(tài)圖 第二步:打開服務器,并啟動服務器實施監(jiān)控,如圖:圖5.2 服務器啟動狀態(tài)圖 第三步:打開本地客戶端,然后連接服務器,并發(fā)送打印數據。 圖5.3 客戶端鏈接并發(fā)送數據成功狀態(tài)圖 圖5.4 服務器成功接收數據狀態(tài)圖 第四步:點擊遠程打印按鈕,選擇要傳輸打印的文件,然后查看虛擬打印機的狀態(tài)。5.3測試結果 在測試的第二步中服務器啟動成功,通過netstat -an 命令查看端口號狀態(tài):現(xiàn)在端口號處于listening監(jiān)聽狀態(tài),說明測試過程中服務器啟動成功。圖5.5服務器端口狀態(tài)圖 在測試第三步中客戶端連接服務器成功,通過netstat -an 命令查看客戶端端口和服務器ip地址狀態(tài):現(xiàn)在客戶端端口號和本地ip地址與遠程服務器ip地址和端口號處于estab
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新會計準則存貨處理探析
- 隧道施工自營協(xié)議書
- 道路清掃管理協(xié)議書
- 項目臨時用工協(xié)議書
- 飛機技術質量協(xié)議書
- 船舶出售委托協(xié)議書
- 補償違約交房協(xié)議書
- 車輛保險服務協(xié)議書
- 衣服保管合同協(xié)議書
- 集體合同轉讓協(xié)議書
- 施工單位平安工地考核評價表(標準)
- 建筑材料分類整理
- 人民幣發(fā)展史-課件(PPT演示)
- 經歷是流經裙邊的水
- 工作票培訓-課件
- 骨科疾病的康復課件
- 三氯乙醛 氯醛MSDS危險化學品安全技術說明書
- 合作社貸款申請書范文(優(yōu)選十三篇)
- 產品平臺與CBB技術管理課件
- 鑿井穩(wěn)車安裝安全技術交底-
- 學院學生紀律處分登記表
評論
0/150
提交評論