【正文】
的數(shù)據(jù)結(jié)構(gòu),同時這些協(xié)議的組合應(yīng)該能處理所有可能的硬件錯誤以及其它異常情況。2 Socket網(wǎng)絡(luò)編程的關(guān)鍵技術(shù) Socket網(wǎng)絡(luò)編程理論基礎(chǔ) OSI七層網(wǎng)絡(luò)模型與TCP/IP四層網(wǎng)絡(luò)模型OSI網(wǎng)絡(luò)分層參考模型網(wǎng)絡(luò)協(xié)議設(shè)計者不應(yīng)當(dāng)設(shè)計一個單一、巨大的協(xié)議來為所有形式的通信規(guī)定完整的細(xì)節(jié),而應(yīng)把通信問題劃分成多個小問題,然后為每一個小問題設(shè)計一個單獨的協(xié)議,這樣做使得每個協(xié)議的設(shè)計、分析、時限和測試比較容易。詳細(xì)設(shè)計包括了界面設(shè)計,客戶端模塊設(shè)計與實現(xiàn),服務(wù)器模塊設(shè)計與實現(xiàn),消息模擬功能的實現(xiàn),流數(shù)據(jù)的實現(xiàn),圖形編碼等??傮w設(shè)計包括需求分析、可行性技術(shù)方案,框架結(jié)構(gòu)、模塊劃分以及模塊的功能定義。第2章論述了Socket網(wǎng)絡(luò)編程的關(guān)鍵技術(shù):網(wǎng)絡(luò)編程的理論基礎(chǔ),Windows Socket網(wǎng)絡(luò)編程技術(shù),圖像技術(shù),圖像壓縮的編碼及解碼,包括霍夫曼壓縮,和Run Length(行程長度)壓縮等。目前,大多數(shù)遠(yuǎn)程進(jìn)程間通信代碼是用Socket 編寫的,實際應(yīng)用中用Socket 傳輸信息并不是獨立的,它在多線程的處理環(huán)境中應(yīng)用更為廣??蛻? 服務(wù)器模式通常采用監(jiān)聽/ 連接的方式實現(xiàn),服務(wù)器端應(yīng)用程序在一個端口監(jiān)聽對服務(wù)的請求。流式是一種面向連接的Socket,針對于面向連接的TCP服務(wù)應(yīng)用,實現(xiàn)了無差錯無重復(fù)的順序數(shù)據(jù)傳輸,無長度限制;數(shù)據(jù)報式Socket是一種無連接的Socket,對應(yīng)于無連接的UDP服務(wù)應(yīng)用,定義了一種無連接的服務(wù),數(shù)據(jù)通過相互獨立的報文進(jìn)行傳輸,是無序的,并且不保證可靠。比如市面上比較普遍的、UC、飛鴿傳書等以內(nèi)部網(wǎng)絡(luò)為中心的資源共享系統(tǒng),都應(yīng)用到套接字網(wǎng)絡(luò)編程技術(shù)。Socket接口是TCP/ IP 網(wǎng)絡(luò)最為通用的API(Application Program Interface),也是在Internet 上進(jìn)行應(yīng)用開發(fā)最通用的API。如果兩臺計算機(jī)是利用一個“通道”進(jìn)行通信,那么這個“通道”的兩端就是套接字。TCP/IP協(xié)議集成到操作系統(tǒng)的內(nèi)核中,在TCP/IP協(xié)議中引入了一種稱之為“Socket”的應(yīng)用程序接口。 then introduces the various functional modules of the specific implementation steps. Finally, test methods and results, the advantages and disadvantages of the system are summarized.Keywords:Socket;VC++;Network Programming;Remote Control目錄1 緒論 1 課題的背景和意義 1 課題的國內(nèi)外研究現(xiàn)狀 1 課題的結(jié)構(gòu)安排 22 Socket網(wǎng)絡(luò)編程的關(guān)鍵技術(shù) 3 Socket網(wǎng)絡(luò)編程理論基礎(chǔ) 3 OSI七層網(wǎng)絡(luò)模型與TCP/IP四層網(wǎng)絡(luò)模型 3 Socket編程基本原理 6 Windows Socket網(wǎng)絡(luò)編程技術(shù) 10 Winsock簡介 10 Winsock通信機(jī)制 10 Winsock編程模型 11 圖像技術(shù) 13 圖像壓縮編碼解碼 16 霍夫曼壓縮 17 Run Length壓縮 173 遠(yuǎn)程控制系統(tǒng)總體設(shè)計 19 系統(tǒng)需求分析 19 用戶需求 19 可采用的技術(shù)方案 19 可行性技術(shù)方案 19 技術(shù)可行性 19 經(jīng)濟(jì)可行性 20 系統(tǒng)的基本框架 20 模塊劃分及功能設(shè)計 214 系統(tǒng)的詳細(xì)設(shè)計與實現(xiàn) 22 界面設(shè)計 22 客戶端界面 22 服務(wù)器端界面 24 客戶端模塊設(shè)計與實現(xiàn) 25 服務(wù)器模塊設(shè)計與實現(xiàn) 27 消息模擬功能的實現(xiàn) 29 流數(shù)據(jù)的實現(xiàn) 30 圖形編碼 305 系統(tǒng)實施及測試 34 測試環(huán)境搭建 34 系統(tǒng)功能和性能測試 34 客戶端顯示測試 34 鼠標(biāo)鍵盤功能測試 39 測試結(jié)果 42結(jié) 論 43致 謝 44參考文獻(xiàn) 45附錄A 英文原文 47附錄B 中文翻譯 58附錄C 源程序 65671 緒論 課題的背景和意義隨著計算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展,原來物理上的接口(如鍵盤、鼠標(biāo)、網(wǎng)卡、顯示卡等輸入、輸出接口)已不能滿足網(wǎng)絡(luò)通信的要求了。最后對系統(tǒng)進(jìn)行了功能測試和性能分析,并得出所期望的測試結(jié)果。本文首先針對遠(yuǎn)程控制系統(tǒng)的關(guān)鍵技術(shù)進(jìn)行了深入研究,并對遠(yuǎn)程控制系統(tǒng)的做出了需求分析。該系統(tǒng)對遠(yuǎn)程主機(jī)的監(jiān)控主要包括:實時監(jiān)視桌面狀態(tài)、修改系統(tǒng)配置文件、控制鼠標(biāo)、鍵盤等基本操作。Socket 是建立在傳輸層協(xié)議上的一種套接字規(guī)范,基于Socket的網(wǎng)絡(luò)編程已是一項現(xiàn)如今被廣泛利用的技術(shù),很大程度上方便了人們的生活。理工大學(xué)學(xué)士學(xué)位論文摘 要隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,計算機(jī)給人類文明帶來了翻天覆地的變化,原來物理上的接口已不能滿足網(wǎng)絡(luò)通信的要求了。TCP/IP(Transmission Control Protocol/Internet Protocol)協(xié)議作為網(wǎng)絡(luò)通信的基本協(xié)議就解決了這一通信難題,它引入了一種稱之為“Socket”的應(yīng)用程序接口。本文以VC++,利用套接字的網(wǎng)絡(luò)編程規(guī)范,實現(xiàn)運行不同桌面操作系統(tǒng)的計算機(jī)之間的相互監(jiān)控的遠(yuǎn)程控制系統(tǒng)。系統(tǒng)可以讓本地計算機(jī)通過局域網(wǎng)訪問不同的遠(yuǎn)程計算機(jī),也可以進(jìn)行網(wǎng)際主機(jī)控制。設(shè)計了系統(tǒng)的基本框架和各個模塊的功能,主要針對服務(wù)器模塊,客戶端模塊,消息模擬模塊等進(jìn)行了具體實現(xiàn)。 關(guān)鍵字:Socket;VC++;網(wǎng)絡(luò)編程;遠(yuǎn)程控制 AbstractWith the rapid development of network technology, puter has brought human civilization aundergone enormous changes, the original physical interface has been unable to meet the requirements of network munication. As the network munication protocol TCP / IP protocol solved the basic problem of this munication, the introduction of a technique called Socket application program interface. Socket network based on programming is a widely utilized nowadays .In this paper, VC development environment, socketbased network programming, implementation and process control system that allows the local puter through the LAN to access different remote puters, and its operation can also be carried out Internet host.This article first briefly introduces the remote desktop monitoring system key technologies, as well as system requirements analysis. The basic framework of the system design and function of each module。TCP/IP協(xié)議作為網(wǎng)絡(luò)通信的基本協(xié)議就解決了這一通信難題。Socket 是建立在傳輸層協(xié)議是TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)上的一種套接字規(guī)范,它最初由美國加州Berkley大學(xué)提出,是UNIX 操作系統(tǒng)開發(fā)的網(wǎng)絡(luò)通信接口,它定義了兩臺計算機(jī)間的通信規(guī)范(也是一種編程規(guī)范)。Socket 屏蔽了底層通信軟件和具體操作系統(tǒng)的差異,使得任何兩臺安裝了TCP 協(xié)議軟件和實現(xiàn)了Socket 規(guī)范的計算機(jī)之間的通信成為可能。 課題的國內(nèi)外研究現(xiàn)狀基于Socket的網(wǎng)絡(luò)編程技術(shù)在人們不斷的研究和探索下,日益的完善與成熟,已被廣泛的應(yīng)用在通信,醫(yī)療等各個領(lǐng)域。目前,常用的Socket類型有兩種,流式Socket(SOCK_STREAM)和數(shù)據(jù)報式Socket(SOCK_DGRAM)。在現(xiàn)在的網(wǎng)絡(luò)應(yīng)用中,通信雙方最常見的交互模式便是Client/ Server 模式。也就是說,服務(wù)進(jìn)程一直處于休眠狀態(tài),直到有一個客戶對這個服務(wù)提出了連接請求,此時服務(wù)線程被“喚醒”并為客戶。 課題的結(jié)構(gòu)安排第1章論述了Socket網(wǎng)絡(luò)編程的的研究背景和意義, Socket網(wǎng)絡(luò)編程技術(shù)的國內(nèi)外研究現(xiàn)狀。 第3章對系統(tǒng)進(jìn)行了總體設(shè)計。第4章給出了系統(tǒng)詳細(xì)的設(shè)計和具體實現(xiàn)。第5章對系統(tǒng)進(jìn)行了測試,包括測試的環(huán)境、過程和測試結(jié)論。協(xié)議劃分的一個主要原則是確保目標(biāo)系統(tǒng)有效且效率高。為了保證這些協(xié)議工作的協(xié)同性,應(yīng)當(dāng)將協(xié)議設(shè)計和開發(fā)成完整的、協(xié)作的協(xié)議系列(即協(xié)議簇),而不是孤立地開發(fā)每個協(xié)議。計算機(jī)操作系統(tǒng)中的網(wǎng)絡(luò)過程包括從應(yīng)用請求(在協(xié)議棧的頂部)到網(wǎng)絡(luò)介質(zhì)(底部)。它由計算機(jī)和網(wǎng)絡(luò)介質(zhì)之間的實際界面組成,可定義電氣信號、符號、線的狀態(tài)、時鐘要求、數(shù)據(jù)編碼、數(shù)據(jù)傳輸用的連接器。不同的數(shù)據(jù)鏈路層定義了不同的網(wǎng)絡(luò)和協(xié)議特征,其中包括物理編址、網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、錯誤校驗、幀序列以及流控。它一般包括網(wǎng)絡(luò)尋徑、流量控制、錯誤檢查等。例如IP路由器工作在網(wǎng)絡(luò)層,因而可以實現(xiàn)多種網(wǎng)絡(luò)間的互聯(lián)。傳輸層的功能一般包括流控、多路傳輸、虛電路管理及差錯校驗和恢復(fù)。傳輸控制協(xié)議(TCP)是提供可靠數(shù)據(jù)傳輸?shù)腡CP/IP協(xié)議族中的傳輸層協(xié)議。第六層:表示層,提供多種功能用于應(yīng)用層數(shù)據(jù)編碼和轉(zhuǎn)化,以確保以一個系統(tǒng)應(yīng)用層發(fā)送的信息可以被另一個系統(tǒng)應(yīng)用層識別。第七層:應(yīng)用層,最接近終端用戶的OSI層,這就意味著OSI應(yīng)用層與用戶之間是通過應(yīng)用軟件直接相互作用的。因為可能丟失通信伙伴,應(yīng)用層必須為傳輸數(shù)據(jù)的應(yīng)用子程序定義通信伙伴的標(biāo)識和可用性。在同步通信中,所有應(yīng)用程序之間的通信都需要應(yīng)用層的協(xié)同操作。TCP/IP協(xié)議被組織成四個概念層,其中有三層對應(yīng)于ISO參考模型中的相應(yīng)層。TCP/IP分層模型的四個協(xié)議層分別完成以下的功能:第一層:網(wǎng)絡(luò)接口層,包括用于協(xié)作IP數(shù)據(jù)在已有網(wǎng)絡(luò)介質(zhì)上傳輸?shù)膮f(xié)議。相反,它定義像地址解析協(xié)議(Address Resolution Protocol, ARP)這樣的協(xié)議,提供TCP/IP協(xié)議的數(shù)據(jù)結(jié)構(gòu)和實際物理硬件之間的接口。本層包含IP協(xié)議、RIP協(xié)議(Routing Information Protocol,路由信息協(xié)議),負(fù)責(zé)數(shù)據(jù)的包裝、尋址和路由。第三層:傳輸層,對應(yīng)于OSI七層參考模型的傳輸層,它提供兩種端到端的通信服務(wù)。第四層:應(yīng)用層,對應(yīng)于OSI七層參考模型的應(yīng)用層和表達(dá)層。 TCP/IP四層模型 Socket編程基本原理套接字介紹套接字(Socket)起初來源于UNIX,是加利福尼亞大學(xué)Berkeley 分校開發(fā)的UNIX 操作系統(tǒng)下的網(wǎng)絡(luò)通信接口。套接字存在于其特定的通信域(即地址族)中,通信域是為了處理一般的線程通過套接字通信而引進(jìn)的一種抽象概念,只有隸屬于同一地址族的套接字才能建立對話(數(shù)據(jù)交換也可能穿越域的界限,但這時一定要執(zhí)行某種解釋程序),Windows Sockets 目前只支持網(wǎng)際域(AF_INET),所有使用網(wǎng)際協(xié)議簇的進(jìn)程均適用于該域。流式套接字(SOCK_STREAM):該類套接字提供了面向連接的、可靠的、數(shù)據(jù)無錯并且無重復(fù)的數(shù)據(jù)發(fā)送服務(wù)。所有利用該套接字進(jìn)行傳遞的數(shù)據(jù)均被視為連續(xù)的字節(jié)流的并且無長度限制。但其對線路的占用率相對提高。數(shù)據(jù)報式套接字(SOCK_DGRAM):數(shù)據(jù)報式套接字提供了面向無連接的服務(wù) , 它獨立的數(shù)據(jù)包形式發(fā)送數(shù)據(jù)( 數(shù)據(jù)包長度不能大于32KB),不提供正確性檢查,也不保證各數(shù)據(jù)包的發(fā)送順序,因此,可能出現(xiàn)數(shù)據(jù)的重發(fā)、丟失等現(xiàn)象,并且接收順序由具體路由決定。NFS(網(wǎng)絡(luò)文件系統(tǒng))即是采用此類套接字、在TCP/IP 協(xié)議族中,UDP使用該類接口。常用于檢驗新的協(xié)議實現(xiàn)或訪問現(xiàn)有服務(wù)中配置的新設(shè)備,如前所述,一般不提倡他的直接應(yīng)用。由于每個進(jìn)程都在自己的地址范圍內(nèi)運行,為保證兩個相互通信的進(jìn)程之間既互不干擾又協(xié)調(diào)一致工作,操作系統(tǒng)為進(jìn)程通信提供了相應(yīng)設(shè)施,如UNIX BSD中的管道(pipe)、命名管道(named pipe)和軟中斷信號(signal),UNIX system V的消息(message)、共享存儲區(qū)(shared memory)和信號量(semaphore)等,但都僅限于用在本機(jī)進(jìn)程之間通信。為此,首先要解決的是網(wǎng)間進(jìn)程標(biāo)識問題。但在網(wǎng)絡(luò)環(huán)境下,各主機(jī)獨立分配的進(jìn)程號不能唯一標(biāo)識該進(jìn)程。其次,操作系統(tǒng)支持的網(wǎng)絡(luò)協(xié)議眾多,不同協(xié)議的工作方式不同,地址格式也不同。為了解決上述問題,TCP/IP協(xié)議引出了幾個概念。 按照OSI七層協(xié)議的描述,傳輸層與網(wǎng)絡(luò)層在功能上的最大區(qū)別是傳輸層提供進(jìn)程通信能力。為此,TCP/IP協(xié)議提出了協(xié)議端口(protocol port,簡稱端口)的概念,用于標(biāo)識通信的進(jìn)程。應(yīng)用程序(即進(jìn)程)通過系統(tǒng)調(diào)用與某端口建立連接(binding)后,傳輸層傳給該端口的數(shù)據(jù)都被相應(yīng)進(jìn)程所接收,相應(yīng)進(jìn)程發(fā)給傳輸層的數(shù)據(jù)都通過該端口輸出。 類似于文件描