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

正文內(nèi)容

基于socket的網(wǎng)絡(luò)編程技術(shù)及其實現(xiàn)學(xué)士學(xué)位論文(參考版)

2025-06-21 16:56本頁面
  

【正文】 感謝我大學(xué)里的所有老師,是你們提高了我的素質(zhì)修養(yǎng),豐富了我的人生閱歷,教會了我書本上學(xué)不到的知識,沒有你們無私的付出,我永遠會在無知的迷茫中徘徊躊躇。在我今后的人生道路中,我將一直謹記老師對我的教導(dǎo)。致 謝感謝我的論文指導(dǎo)老師,在本論文寫作的過程中得到了老師的幫助和鼓勵。本系統(tǒng)目前使用效果良好。本文設(shè)計并實現(xiàn)了分塊截取屏幕的算法,應(yīng)用這一算法可以減少需要傳送的數(shù)據(jù)量,大大的降低了網(wǎng)絡(luò)的負載,同時又能及時準確地真實再現(xiàn)被控端當前的屏幕信息。首先研究了網(wǎng)絡(luò)編程的理論基礎(chǔ)以及遠程控制系統(tǒng)涉及到的關(guān)鍵技術(shù),系統(tǒng)需要通過Windows Socket技術(shù)和TCP/IP下的C/S(客戶端/服務(wù)器)架構(gòu)進行Socket連接,在傳輸桌面信息時,要通過圖像編碼技術(shù)對圖像進行壓縮處理,主要的方法包括,霍夫曼壓縮,多變霍夫曼壓縮,Run Length編碼壓縮等??蛻舳说氖髽?,可自由在服務(wù)器方移動,實現(xiàn)鼠標的正常功能,測試中,鼠標成功打開服務(wù)器房文件夾,攝像頭,和視頻播放器,成功實現(xiàn)遠程控制,并可通過攝像頭實時監(jiān)控服務(wù)器端的具體情況。 視頻播放 測試結(jié)果服務(wù)器開啟后,客戶端可實現(xiàn)連接,連接成功后,客戶端顯示服務(wù)器端的桌面情況,客戶端可隨時改變數(shù)據(jù)壓縮方式,并可選擇不壓縮,客戶端還可以選擇色彩模式,256色的明顯比16色模式要清晰,分辨率提高。 開啟攝像頭打開桌面迅雷視頻播放器。 打開文件夾,并選擇攝像頭功能。 服務(wù)器向客戶端傳文件 鼠標鍵盤功能測試滑動鼠標,并右擊被控端桌面的文件夾。 顯示網(wǎng)格將水平網(wǎng)格數(shù),垂直網(wǎng)格數(shù),分別改為原來的二倍。 服務(wù)器待接收文件點擊遠程控制,選擇網(wǎng)格空間數(shù)目選項。 顯示服務(wù)器桌面點擊遠程控制選項,選擇色彩模式選項,默認為16色屏幕模式,改為256色。 選擇服務(wù)器模式在主機B上運行客戶端程序,點擊遠程控制選項,并選擇連接服務(wù)器。 系統(tǒng)功能和性能測試 客戶端顯示測試在主機A運行服務(wù)器程序。選擇另一臺主機安裝客戶端程序,作為客戶機。5 系統(tǒng)實施及測試 測試環(huán)境搭建本系統(tǒng)測試的網(wǎng)絡(luò)環(huán)境為100M的以太網(wǎng)。即使想越出邊界,也是不可能的,窗口會自動的防止其他窗口傳過來的任何像素。每個窗口必須獨立的維護自己的輸出。GDI的圖形輸出是面向窗口的,面向窗口包含兩層含義:(1)每個窗口作為一個獨立的繪圖接口來處理,有它自己的繪圖坐標。位圖存放的是圖形的點位信息,占用較多的內(nèi)存,但速度很快。前兩者是物理設(shè)備,后兩者是偽設(shè)備。這些繪圖函數(shù)分為三類:一是文字輸出,二是矢量圖形函數(shù),用于畫線、圓等幾何圖形,三是光柵(位圖)圖形函數(shù),用于繪制位圖。GDI提供兩種基本服務(wù):創(chuàng)建圖形輸出和存儲圖象。當然,這兩種輸出在用戶看來并沒有什么區(qū)別。GDI屏蔽了不同設(shè)備的差異,提供了設(shè)備無關(guān)的圖形輸出能力,Windows應(yīng)用程序只要發(fā)出設(shè)備無關(guān)的GDI請求(如調(diào)用Rectangle畫一個矩形),由GDI去完成實際的圖形輸出操作。這樣的程序編寫起來繁瑣,而且不容易移植(因為換一臺不同型號的打印機就要重新修改程序)。Windows下的輸出是設(shè)備無關(guān)的。因為Windows輸出是基于圖形的,它輸出文本時不會象DOS那樣自動換行,而必須以像素為單位精確定位每一行的輸出位置。printf(“This is DOS program.\n”)。Windows程序的所有輸出都是圖形。而Windows的每一個應(yīng)用程序?qū)ζ聊坏囊徊糠诌M行處理。下面在補充介紹下WINDOWS圖形輸入輸出處理對象GDI。二者相比,e使用了一般編碼的1/8的長度,z則使用了 3倍多。當利用哈夫曼編碼對一篇英文進行壓縮時,e極有可能用一個位(bit)來表示,而z則可能花去 25個位(不是26)。這張編碼表的特殊之處在于,它是根據(jù)每一個源字符出現(xiàn)的估算概率而建立起來的(出現(xiàn)概率高的字符使用較短的編碼,反之出現(xiàn)概率低的則使用較長的編碼,這便使編碼之后的字符串的平均期望長度降低,從而達到無損壓縮數(shù)據(jù)的目的)。在計算機信息處理中,“哈夫曼編碼”是一種一致性編碼法(又稱“熵編碼法”),用于數(shù)據(jù)的無損耗壓縮。 打個不恰當?shù)谋确?,現(xiàn)在用的最多的幾個漢字“個”“的”“們”“什”“么”什么的筆畫不是都很少嗎?這就是文字演變的規(guī)律,也就是哈夫曼編碼的原理。 圖形編碼該程序數(shù)據(jù)圖型編碼采用的是C庫中的哈夫曼壓縮編碼技術(shù),下面稍作解釋以下:哈夫曼編碼的原理是:一個符號發(fā)生頻率越高,其碼長越短,反之則越長。需要注意的是,服務(wù)器端刷屏的時候并不是將整個屏幕都傳給客服端,因為整個屏幕圖片的數(shù)據(jù)量比較大,當前網(wǎng)絡(luò)負載也不是很穩(wěn)定的條件下,該程序是很不穩(wěn)定的。這些操作會通過SOCKET傳給服務(wù)器端。然后將當前改變區(qū)域的屏幕的內(nèi)容發(fā)送到客服端。應(yīng)用程序可以調(diào)用GetMessageExtraInfo獲得這些額外信息。負值表示滾輪向后旋轉(zhuǎn)。Dx:定義沿著X軸的絕對位置Dy:定義沿著Y軸的絕對位置dwData:如果dwFlags包括了MOUSEEVENTF_WHEEL的標志,則dwData定義鼠標滾輪的運動數(shù)量。相關(guān)的功能函數(shù)介紹如下:1 、Keybd_event函數(shù)VOID key_event(BYTE bvk,BYTE bScan,DWORD dwFlags,ULONG_PTR dwExtraInfo)bVk:定義了一個虛擬鍵碼,它的范圍是1~254bScan:保留dwFlags:定義函數(shù)操作類型,按下或彈起DwExtraInfo:定義了擊鍵的額外關(guān)聯(lián)值程序中想要模擬PRINTSCRN的消息,去抓取屏幕的內(nèi)容并將其保存到剪切板中,那么可以將參數(shù)BVK設(shè)置為VK_SNAPSHOT。這樣的技術(shù)被稱為消息模擬。 消息模擬功能的實現(xiàn)在一般的應(yīng)用程序中,用戶敲擊鍵盤或者鼠標的消息都是直接首先被外設(shè)的驅(qū)動程序所截獲,然后外設(shè)的驅(qū)動程序?qū)⑦@些消息加入系統(tǒng)的消息隊列中,這樣應(yīng)用程序可以從消息隊列中得到該消息并進行相應(yīng)的處理。 } listen(Listen,SOMAXCONN)。 MessageBox(NULL,szString,Remote Server,MB_OK)。 if (bind(Listen,(struct sockaddr *)amp。 = AF_INET。 return 1。 if (Listen == SOCKET_ERROR) { sprintf(szString,socket() failed: %d,WSAGetLastError())。Protocol)。 // 為WSASocketGet() nRet = SelectProtocols(SETFLAGS,NOTSETFLAGS,(LPWSAPROTOCOL_INFO)pBuf,amp。 if (nRet == SOCKET_ERROR) { if (WSAGetLastError() != WSAENOBUFS) return 1。 nRet = WSAEnumProtocols(NULL,NULL,amp。 struct myStruct myStructure。 char szString[255]。 DWORD dwThreadId。 int iAddrSize。 int nRet。服務(wù)器端代碼DWORD WINAPI LoadWinsock(LPVOID lpParam){ LPBYTE pBuf。這個模塊是根據(jù)客戶端的要求來采用具體的編碼解碼方法的。網(wǎng)絡(luò)模塊:負責(zé)監(jiān)聽客服端的連接,負責(zé)接收并處理客服端發(fā)過來的消息命令,在本機上處理這些消息并發(fā)送各種數(shù)據(jù),如屏幕數(shù)據(jù),命令反饋數(shù)據(jù)等,到客服端監(jiān)聽程序。根據(jù)這個思想,需要兩個獨立的程序,SERVER REMOTE CONTROL和CLIENT REMOTE CONTROL。 }客戶端代碼流程就相對于簡單明了一些,我們只需要建立一個套接字,然后與服務(wù)器去做連接,最后等待返回就行了。 MessageBox(NULL,szString,Client Socket Error,MB_OK)。,sizeof(szString))。server,sizeof(server)) == SOCKET_ERROR) { memset(szString,39。 = inet_addr(szIP)。 = AF_INET。 setsockopt(sClient,SOL_SOCKET,SO_RCVBUF,(char *)amp。 if (sClient == INVALID_SOCKET) return 1。 free(pBuf)。dwLen,amp。 } pBuf = malloc(dwLen)。dwLen)。 } dwLen = 0。wsd) != 0) { MessageBox(NULL,hehe,Client Socket Error,MB_OK)。 char szMessage[81]。 WSAPROTOCOL_INFO Protocol。 int nRet,nZero??蛻舳藢崿F(xiàn)代碼int LoadWinsock(HWND hWnd,char *szIP){ WSADATA wsd。 開啟服務(wù)器選項 客戶端模塊設(shè)計與實現(xiàn)客戶端實現(xiàn)原理網(wǎng)絡(luò)模塊:負責(zé)連接到服務(wù)器的監(jiān)聽Socket;負責(zé)向服務(wù)器發(fā)送各種操作命令,如鼠標,鍵盤,各種參數(shù)消息等命令。 服務(wù)器主界面服務(wù)器選項界面,包括開啟服務(wù)器,終止服務(wù),退出選項。 色彩模式選項連接服務(wù)器選項界面,添加兩個靜態(tài)文本控件,用于標識IP地址和號,編輯文本控件,輸入端口號和IP地址,一個缺點按鈕,一個取消按鈕。 數(shù)據(jù)壓縮選項網(wǎng)格空間數(shù)目選項界面,添加文本控件,編輯文本控件,單項選擇按鈕,確定按鈕,默認值按鈕,取消按鈕。 客戶端主界面客戶端菜單欄,遠程控制選項界面包括服務(wù)器連接,斷開服務(wù)器,數(shù)據(jù)壓縮,網(wǎng)格空間數(shù)目,色彩模式選擇,退出選項。4 系統(tǒng)的詳細設(shè)計與實現(xiàn) 界面設(shè)計 客戶端界面界面是系統(tǒng)功能得以實現(xiàn)的基本平臺,這里充分利用VC++。建立連接是連接服務(wù)器連接成功顯示遠程桌面實施遠程控制 圖像壓縮 鍵盤控制 鼠標控制 顯示網(wǎng)格改變色彩模式否啟動監(jiān)聽服務(wù)器客戶端Socket識別遠程消息發(fā)送桌面信息響應(yīng)控制消息響應(yīng)鍵盤消息響應(yīng)鼠標消息發(fā)送發(fā)送 系統(tǒng)流程圖 模塊劃分及功能設(shè)計總體功能結(jié)構(gòu)包括主控端(客戶端)和被控端(服務(wù)器)兩大部分。Socket通過TCP/IP協(xié)議實現(xiàn)兩端計算機的數(shù)據(jù)通信。兩端的程序通過套接字Socket建立連接。 系統(tǒng)的基本框架,在支持TCP/IP協(xié)議的網(wǎng)絡(luò)中,本地計算機與遠程主機通過物理網(wǎng)絡(luò)相連。但是本程序在局域網(wǎng)中是完全能夠?qū)崿F(xiàn)的,而且本程序也是專門為企業(yè)網(wǎng)內(nèi)部所設(shè)計,因為數(shù)據(jù)信息沒被加密,如果想走Internet,則需建立VPN。當初遠程控制這門技術(shù)在DOS時代就已經(jīng)存在,只是受網(wǎng)絡(luò)的制約,但是此時這門技術(shù)還是受網(wǎng)絡(luò)技術(shù)制約著。通過Socket傳遞的虛擬消息結(jié)構(gòu)體到對端,被對端主機解釋并虛擬,最終達到程序目的。該程序采用TCP協(xié)議,因為流控和差控的存在使得傳輸更具有穩(wěn)定性。 可采用的技術(shù)方案遠程監(jiān)控系統(tǒng)的實現(xiàn)主要采用了套接字這項技術(shù)和虛擬鼠標鍵盤消息的API,在大多數(shù)情況下套接字是底層傳輸代碼的必選技術(shù)。該程序允許你利用你的鼠標和鍵盤來控制其他的計算機遠程。這是當遠程訪問軟件出場的時候了,它能幫助你訪問遠程計算機就像訪問自己的計算機一樣,距離不再是問題。這種方法還是非常有效的。因而這種壓縮應(yīng)用范圍有限。這種壓縮方法所能壓縮的圖像像素位數(shù)最大為8位(256色)圖像。如編碼 0504表示從當前位置開始連續(xù)顯示5個顏色值為04的像素。該壓縮方法編碼也是以兩個字節(jié)為基本單位。由RLE原理派生出許多具體行程壓縮方法:(1)PCX行程壓縮方法: 該算法實際上是位映射格式到壓縮格式的轉(zhuǎn)換算法,該算法對于連續(xù)出現(xiàn)1次的字節(jié)Ch,若Ch0xc0則壓縮時在該字節(jié)前加上0xc1,否則直接輸出Ch,對于連續(xù)出現(xiàn)N 次的字節(jié)Ch,則壓縮成0xc0+N,Ch這兩個字節(jié),因而N最大只能為ff-c0=3fh(十進制為63),當N大于63時, 則需分多次壓縮。例如:aaabccccccddeee,則可用3a1b6c2d3e來代替。哈夫曼算法在改變?nèi)魏畏柖M制編碼引起少量密集表現(xiàn)方面是最佳的,然而,它并不處理符號的順序和重復(fù)或序號的序列。它使用預(yù)先二進制描述來替換每個符號,長度由特殊符號出現(xiàn)的頻率決定。產(chǎn)生霍夫曼編碼需要對原始數(shù)據(jù)掃描兩遍,第一遍掃描要精確地統(tǒng)計出原始數(shù)據(jù)中的每個值出現(xiàn)的頻率,第二遍是建立霍夫曼樹并進行編碼,由于需要建立二叉樹并遍歷二叉樹生成編碼,因此數(shù)據(jù)壓縮和還原速度都較慢,但簡單有效,因而得到廣泛的應(yīng)用。這些代碼都是二進制碼,且碼的長度是可變的。如果能減少或消除其中的一種或多種冗余,就能取得數(shù)據(jù)壓縮的效果。假如用n1和n2分別代表用來表達相同信息的2個數(shù)據(jù)集合中的信息載體單位的個數(shù),那么壓縮率CR為:Cr=nl/n2,一般情況下Cr在開區(qū)間(0,+∞)中取值。從信息論的角度來看,壓縮就是去掉信息中的冗余,即保留不確定的信息,去掉確定的信息(可推知的),也就是用一種更接近信息本質(zhì)的描述來代替原有冗余的描述。
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1