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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于c的局域網(wǎng)軟件監(jiān)控系統(tǒng)設(shè)計(jì)(編輯修改稿)

2025-01-06 19:42 本頁面
 

【文章內(nèi)容簡介】 1. 系統(tǒng)采用人機(jī)交互的方式,界面美觀友好。 2. 控制端可以隨時(shí)運(yùn)行,只要被控端的程 序在運(yùn)行,就可以捕捉到被控端屏幕。 3. 可以對被控端的屏幕進(jìn)行保存,留待以后查證。 4. 運(yùn)行網(wǎng)絡(luò)流量監(jiān)控 功能 ,能夠監(jiān)控到整個(gè)局域網(wǎng)的流量。 系統(tǒng)功能結(jié)構(gòu) 局域網(wǎng)軟件運(yùn)行監(jiān)控系統(tǒng)功能如圖所示: 圖 21 局域網(wǎng)軟件運(yùn)行監(jiān)控系統(tǒng) 局域網(wǎng)軟件運(yùn)行監(jiān)控系統(tǒng) 控制端 被控端 系統(tǒng)連接 圖片保存 流量監(jiān)控 通信端口設(shè)置 IP設(shè)置 用戶名、密碼 主窗體 通信端口設(shè)置 山東科技大學(xué)學(xué)士學(xué)位論文 系統(tǒng)設(shè)計(jì) 3 用戶界面 局域 軟件運(yùn)行 網(wǎng)監(jiān)控系統(tǒng)分為控制端和被控 端兩部分,其中被控端運(yùn)行時(shí)只需設(shè)置通信端口,啟動服務(wù)即可??刂?端主要有兩個(gè)窗體組成,分別為主窗體、局域網(wǎng)流量監(jiān)測窗體。其中,主窗體用于端口、 ip、用戶名、 密碼設(shè)置,連接成功后用于接收顯示屏幕信息,并存捕捉的屏幕信息。局域網(wǎng)流量監(jiān)測窗體用戶獲取局域網(wǎng)內(nèi)部每臺計(jì)算機(jī)的流量實(shí)時(shí)監(jiān)控。 圖 22被控端主窗體 圖 23 控制端主窗體 山東科技大學(xué)學(xué)士學(xué)位論文 系統(tǒng)設(shè)計(jì) 4 圖 24 流量監(jiān)測對話框 程 序流程圖 山東科技大學(xué)學(xué)士學(xué)位論文 系統(tǒng)設(shè)計(jì) 5 圖 25 系統(tǒng)流程圖 系統(tǒng)運(yùn)行環(huán)境 局域網(wǎng)軟件運(yùn)行監(jiān)控系統(tǒng)對運(yùn)行環(huán)境有一定的要求,具體如下: 系統(tǒng)開發(fā)平臺: Microsoft VC 。 系統(tǒng)開發(fā)語言: C++。 運(yùn)行平臺: Windows XP系 統(tǒng) 連 接 連接成功 主窗體 屏幕捕捉 圖片保存 流量監(jiān)控 否 是 山東科技大學(xué)學(xué)士學(xué)位論文 系統(tǒng)詳細(xì)設(shè)計(jì) 1 3 系統(tǒng)詳細(xì)設(shè)計(jì) 被 控端模塊設(shè)計(jì) 被控端模塊概述 局域網(wǎng)軟件運(yùn)行監(jiān)控系統(tǒng)分為控制端和被控端兩大模塊,其中,被控端的主要作用是時(shí)時(shí)抓取本機(jī)的屏幕信息,將其分成 多個(gè)數(shù)據(jù)報(bào),發(fā)送到控制端。為了保證屏幕信息能夠完整的發(fā)送到控制端 , 被控端在發(fā)送一個(gè)數(shù)據(jù)報(bào)后,需要等待控制端 發(fā)來的確認(rèn)信息,然后繼續(xù)發(fā)送下一個(gè)數(shù)據(jù)報(bào)。 被控端技術(shù)分析 被控端如果要實(shí)現(xiàn)屏幕信息的發(fā)送,必須要解決兩個(gè)關(guān)鍵問題:一是獲取自己桌面屏幕信息,將其轉(zhuǎn)換為位圖格式;二是將位圖信息發(fā)送到控制端。 被控端實(shí)現(xiàn)過程 ( 1)首先新建一個(gè) IDD_SREENSERVER_DIALOG 對話框 ,右擊建立類向?qū)麨镃sreenServerDlg。在對話框中依次加入靜態(tài)文本框、編輯框、按鈕等三個(gè)控件 并 給予初始化的定義。同時(shí)添加數(shù)據(jù)包,位圖相關(guān)信息,其他成員函數(shù)以及成員變量的定義代碼如下: struct CapSreenHeader//圖像頭信息 { long filelength。//定義位圖文件長度 int width。//定義寬度 int height。 //定義高度 int blocklen。//數(shù)據(jù)塊長度 long factlen。}。//實(shí)際數(shù)據(jù)長度 HBITMAP hBitmap。//初始化位圖信息 CListenSock* plisten。//定義監(jiān)聽指針 CClientSock* pclient。//定義 socket 類型的接口 ( 2)在 CsreenServerDlg 類的 OnInitDialog()成員函數(shù)中把需要的成員變量進(jìn)行初始化。具體代碼見附錄 31 ( 3)為開始服務(wù)按鈕 IDC_BUTTON_START 添加消息響應(yīng)函數(shù) OnButtonStart(), 開始為控制端提供 服務(wù)。具體代碼如下: void CSreenServerDlg::OnButtonStart() //開始服務(wù) { CString name。 山東科技大學(xué)學(xué)士學(xué)位論文 系統(tǒng)詳細(xì)設(shè)計(jì) 2 UpdateData(TRUE)。 GetDlgItemText(IDC_BUTTON_START,name)。 if(name==開始服務(wù) ) {plisten=new CListenSock。 plistenCreate(m_tport)。 //創(chuàng)建 等待客戶端 監(jiān)聽的 Socket,在本機(jī)的 3009 監(jiān)聽 , plistensetdlg(this)。 //點(diǎn)開始 程序 附件 命令提示符 ,打開一個(gè)終端窗口,輸入 命令 stat an 就可看到有沒有打開端口 3009,也能看到所有的網(wǎng)絡(luò)連接狀態(tài) SetDlgItemText(IDC_BUTTON_START,停止服務(wù) )。 //把按鈕文字置為停止服務(wù) } else{ SetDlgItemText(IDC_BUTTON_START,開始服務(wù) )。 //把按鈕文字置為開始服務(wù) if(plisten!=NULL) { plistenClose()。//關(guān)閉監(jiān)聽 delete plisten。} if(pclient!=NULL) { pclientClose()。//關(guān)閉與客戶端通信端口 delete pclient。}}} ( 4) 獲取 本機(jī) 桌面屏幕信息,并將屏幕信息轉(zhuǎn)換為位圖格式 HWND hWnd = ::GetDesktopWindow()。//獲得屏幕的 HWND. HDC hScreenDC = ::GetDC(hWnd)。 //獲得屏幕的 HDC. HDC MemDC = ::CreateCompatibleDC(hScreenDC)。//定義一個(gè)內(nèi)存的畫布 MemDC RECT rect。 ::GetWindowRect(hWnd,amp。rect)。 //獲取屏幕的客戶區(qū)域 SIZE screensize。 =。//獲取屏幕的寬度 =。 //獲取屏幕的高度 hBitmap= ::CreateCompatibleBitmap(hScreenDC,)。 山東科技大學(xué)學(xué)士學(xué)位論文 系統(tǒng)詳細(xì)設(shè)計(jì) 3 //創(chuàng)建兼容位圖 HGDIOBJ hOldBMP = ::SelectObject(MemDC,hBitmap)。//選中位圖對象 ::BitBlt(MemDC,0,0,hScreenDC,S RCCOPY)。//將屏幕信息輸出到位圖 ::SelectObject(MemDC,hOldBMP)。//把位圖寫入內(nèi)存 ::DeleteObject(MemDC)。//釋放位圖對象 ::ReleaseDC(hWnd,hScreenDC)。 ( 5) 添加消息響應(yīng)函數(shù) SendSreenToClient() //把獲取的被控端信息發(fā)送到控制端。 void CSreenServerDlg::SendSreenToClient() { if(pclient!=NULLamp。amp。islogin==1) //判斷端口是否打開 判斷服務(wù)器是否登錄成功 { CapSreen()。 //捕捉本機(jī)桌面 SentSreen(hBitmap,pclient)。 //把捕捉到的位圖信息發(fā)送到客戶端 }} 系統(tǒng)連接模塊設(shè)計(jì) 系統(tǒng)連接模塊設(shè)計(jì)概述 為了防止非法用戶使用系統(tǒng),在局域網(wǎng) 軟件允許監(jiān)控系統(tǒng)的控制端增加了用戶登錄這么一個(gè)小模塊。在系統(tǒng)啟動時(shí),只有輸入正確的用戶名和密碼才能進(jìn)行被控端桌面的捕捉。首先輸入你想要監(jiān)控的 被 控制端 ip,如果不輸入則默認(rèn)是 。本系統(tǒng)為了運(yùn)行方便于是把用戶名和密碼設(shè)置成了默認(rèn)的,也可以是手動輸入的。如果用戶名和密碼輸入錯誤或者是為空就會就會彈出一個(gè)提示框,提示用戶名或密碼錯誤請重 新輸入;如果輸入正確才會彈出一個(gè)提示框,提示登錄成功。具體的 圖顯示 如下 : 圖 31 被控端連接失敗 山東科技大學(xué)學(xué)士學(xué)位論文 系統(tǒng)詳細(xì)設(shè)計(jì) 4 圖 32 控制端登錄成功 系統(tǒng)連接模塊技術(shù)分析 系統(tǒng)連 接主要的技術(shù)要點(diǎn)分為兩部分,一部分是輸入 ip 與被控端計(jì)算機(jī)獲得連接;一部分是輸入正確的用戶名和密碼。本系統(tǒng)是 sokcet 通信,通過 socket 端口進(jìn)行通信。在該模塊一開始就定義了一個(gè) socket 端口類型的指針 pclient=NULL,實(shí)例化一個(gè)CclientSock 的一個(gè)類對象,創(chuàng)建一個(gè) socket 接口,與被控端的 Connect()函數(shù)取得連接。設(shè)置一個(gè)用戶結(jié)構(gòu)體來定義用戶、密碼以及端口。 系統(tǒng)通過一個(gè)函數(shù)發(fā)送客戶端的請求到服務(wù)器端,通過服務(wù)器端請求,服務(wù)器端才會給客戶端提供需要的服務(wù)。在這個(gè)系統(tǒng)連 接的模塊中客戶端通過 myRecvData(CClientSock *pc) 函 數(shù) 和 客 戶 端 去 連 接 ; 服 務(wù) 器 通 過 myRecvData(CClientSock *pc) 和myAccept(CListenSock *pl)兩個(gè)函數(shù)來為客服端 來進(jìn)行連接 。 系統(tǒng)連接模塊實(shí)現(xiàn)過程 ( 1) 首先新建一個(gè) CclientSock 類,并初始化成員變量和成員函數(shù) CSreenClientDlg 類中定義用戶名、密碼以及端口的相關(guān)信息。定義如下: class CclientSock public: int id。 int bufoffset。//定義緩沖區(qū) char *pkbuf。//緩沖區(qū)指針 int pklen。//塊長度 int recvlen。 //收到信息的大小 CSreenClientDlg *dlg。//聲明類 CSreenClientDlg 指針 public: void SendCommandData(int type,char* buf,int len)。 void GetPackage(char *buf)。 void setdlg(CSreenClientDlg *d,int cid,int plen)。 class CsreenClientDlg 山東科技大學(xué)學(xué)士學(xué)位論文 系統(tǒng)詳細(xì)設(shè)計(jì) 5 struct USERINFO{//用戶信息 char name[30]。//定義用戶名 char password[20]。//定義密碼 int uport。//定義通訊端口 }。 void myRecvData(CClientSock *pc)。 CClientSock *pclient。 USERINFO usrinfo。//用戶信息 NETPACKAGE usrpack。 ( 2) 在主窗口添加按鈕 IDC_BUTTON_CONNECT,右擊屬性改名為連接,并為按鈕添加消息響應(yīng)函數(shù) OnButtonConnect()。具體實(shí)現(xiàn)代碼如下: void CSreenClientDlg::OnButtonConnect() //與被監(jiān)控電腦相連接 { // TODO: Add your control notification handler code here CString name。 GetDlgItemText(IDC_BUTTON_CONNECT,name)。 UpdateData(TRUE)。 if(name==連接 ) { pclient=new CClientSock。 pclientCreate()。//創(chuàng)建普通的 SOCKET pklen=sizeof(NETPACKAGE)。//獲取數(shù)據(jù)包的長度 pclientsetdlg(this,1,pklen)。 int rt=pclientConnect(m_ip,m_port)。//連接服務(wù)端 if(rt==1) { strcpy(,(0))。 strcpy(,(0))。 =3100。 pclient
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1