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

正文內(nèi)容

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

2025-06-21 16:56本頁(yè)面
  

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