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

正文內(nèi)容

局域網(wǎng)監(jiān)控系統(tǒng)設(shè)計(jì)與利用畢業(yè)論文(編輯修改稿)

2025-07-24 21:37 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 數(shù)據(jù)傳輸?shù)椒?wù)器,需要利用套接字函數(shù)發(fā)送數(shù)據(jù)。在Visual C++中,為了使用套接字函數(shù),首先需要引用相應(yīng)的頭文件和庫(kù)文件。代碼如下:include “”pragma ment(lib,””)然后在應(yīng)用程序初始化時(shí)調(diào)用WSAStartup函數(shù)初始化套接字。代碼如下:WSADATA data。WSAStartup(2,amp。data)。 在套接字創(chuàng)建成功后,可以調(diào)用sendto方法發(fā)送數(shù)據(jù)。代碼如下:Sendto(m_Socket,pPackage,packsize,(),(sockaddr*)amp。addr,sizeof(addr))。 系統(tǒng)登錄模塊分析為了驗(yàn)證用戶(hù)輸入的用戶(hù)名稱(chēng)和密碼是否正確,需要根據(jù)用戶(hù)輸入的用戶(hù)名稱(chēng)和密碼從數(shù)據(jù)庫(kù)中查詢(xún)用戶(hù)信息,如果有信息返回,表明用戶(hù)名稱(chēng)和密碼正確;否則不正確。程序中使用了ADO Command對(duì)象執(zhí)行查詢(xún)操作。在使用ADO Command對(duì)象時(shí),首先需要設(shè)置ActiveConnection屬性,該屬性關(guān)聯(lián)一個(gè)ADO Connection對(duì)象,然后設(shè)置CommandText屬性,該屬性標(biāo)示ADO Command 對(duì)象將要執(zhí)行的SQL語(yǔ)句。如果SQL語(yǔ)句中有參數(shù),還需要調(diào)用Parameters屬性的Append方法插入?yún)?shù),最后調(diào)用ADOCommand對(duì)象的Execute方法執(zhí)行SQL語(yǔ)句。 主窗體運(yùn)行分析主窗體需要接收客戶(hù)端傳來(lái)的數(shù)據(jù),并且向客戶(hù)端發(fā)送確認(rèn)信息。這個(gè)需要使用相關(guān)Windows套接字函數(shù)進(jìn)行數(shù)據(jù)的接收和發(fā)送。(1)socket函數(shù)Socket函數(shù)用于創(chuàng)建一個(gè)套接字。函數(shù)語(yǔ)法如下:SOCKET socket(int af,int tupe,int protocol)。(2)bind函數(shù) Bind函數(shù)用于將套接字綁定到一個(gè)已知的地址上。函數(shù)語(yǔ)法如下:Int bind(SOCKET s,const struct sockaddr FAR* name,int namelen)。(3)recvfrom函數(shù) recvfrom函數(shù)用于讀取套接字?jǐn)?shù)據(jù)。函數(shù)語(yǔ)法如下:recvfrom(SOCKET s,char FAR*buf,int len,int flags,struct sockaddr FAR*from,int FAR*fromlen);(4)sendto Sendto函數(shù)用于向指定地址發(fā)送數(shù)據(jù)。函數(shù)語(yǔ)法如下: Sendto(SOCKET s,const char FAR*buf,int len,int flags,const struct sockaddr FAR*to,int tolen)。char*buffer=new char[MAX_BUFF]。 //定義接收緩沖區(qū)sockaddr_in addr。 //定義網(wǎng)絡(luò)地址int factsize=sizeof(sockaddr)。 //確定定網(wǎng)絡(luò)地址大小int ret=recvfrom(m_Socket,buffer,MAX_BUFF,0,(sockaddr*)amp。addr,amp。factsize)。 //接收數(shù)據(jù) 操作員管理模塊分析操作員管理模塊主要實(shí)現(xiàn)操作員信息的添加、修改、刪除。為了方便用戶(hù)進(jìn)行添加、修改、刪除操作,在操作員管理窗口顯示時(shí)會(huì)將操作員信息以表格形式顯示出來(lái)。這里的表格使用的是MFC提供的CListCtrl類(lèi)。(1)SetExtendedStyle方法SetExtendedStyle方法用于設(shè)置CListCtrl類(lèi)的擴(kuò)展風(fēng)格。語(yǔ)法如下:DWORD SetExtendedStyle(DWORD dwNewStyle)。(2)DeleteAllItems方法DeleteAllItems方法用于刪除列表控件中的所有項(xiàng)目。語(yǔ)法如下:BOOL DeleteAllItems()(3)InsertItem方法InserItem方法用于向類(lèi)表控件中添加項(xiàng)目。如果列表控件為Report風(fēng)格,將向列表控件中添加一行。語(yǔ)法如下:Int InsertItem(int nItem,LPCTSTR lpszItem)。(4) InsertColumn方法InsertColumn方法用于向列邊控件中添加列。語(yǔ)法如下:int InsertColumn(int nCol,LPCTSTR lpszColumnHeading,int nFormat=LVCFMT_LEFT),int nWidth= nSubItem=1)。(5)SetItemText方法SetItemText方法用于設(shè)置類(lèi)表空間項(xiàng)目及子項(xiàng)目文件。語(yǔ)法如下:BOOL SetItem Text(int nItem,int nSubItem,LPCTSTR lpszTsxt)。(6)SetImageList方法 SetImageList方法用于設(shè)置列表控件關(guān)聯(lián)的圖像列表控件。CImageList*SetImageList(CImageList*pImageList,int nImageListType)。 系統(tǒng)設(shè)置模塊分析系統(tǒng)設(shè)置模塊為了方便用戶(hù)錄入IP地址,使用CIPAddressCtrl控件,該控件專(zhuān)用于IP地址的輸入。(1)ClearAddress方法ClearAddress方法用于清空控件中的內(nèi)容。語(yǔ)法如下:void ClearAddress()。(2)GetAddress方法GetAddress方法用于獲取IP地址各個(gè)字段的值。語(yǔ)法如下:int GetAddress(BYTEamp。 nField0,BYTEamp。 nField0,BYTEamp。nFieldl,BYTEamp。nField2,BYTEamp。 nField3)。(3)IsBlank方法IsBlank方法用于判斷IP地址的所有字段是否為空,如果所有字段為空,返回TRUE,否則返回FALSE。語(yǔ)法如下:BOOL IsBlank()const。(4)SetAddress方法SetAddress方法用于設(shè)置IP地址。Viod SetAddress(BYTE nField0,BYTE nFieldl,BYTE nField2,BYTE nField3)。(5)SetFieldFocus方法SetFieldFocus方法用于將某個(gè)IP地址字段獲得焦點(diǎn)。語(yǔ)法如下:void SetFieldFocus(WORD nField)。(6)SetieldRange方法SetieldRange方法用于設(shè)置某個(gè)IP地址字段的范圍。語(yǔ)法如下:void SetFieldRange(int nField,BYTE nLower,BYTE nUpper)。4 詳細(xì)設(shè)計(jì) 客戶(hù)端設(shè)計(jì) 客戶(hù)端實(shí)現(xiàn)過(guò)程 客戶(hù)端的主要功能是抓取屏幕信息,將其發(fā)送到服務(wù)器。具體實(shí)現(xiàn)過(guò)程如下:(1)創(chuàng)建一個(gè)基于對(duì)話框的工程,工程名稱(chēng)為Client。(2)。include “”pragma ment(lib,””)(3)在應(yīng)用程序類(lèi)的InitInstance方法中初始化套接字。WSADATA data。WSAStartup(2,amp。data)。(4)改寫(xiě)應(yīng)用程序的虛方法ExitInstance,清理套接字資源。int CClientApp::ExitInstance(){WSACleanup()。Return CWinApp::ExitInstance()。}(5)在對(duì)話框類(lèi)中添加成員變量。(6)自定義一個(gè)消息,在套接字接收到數(shù)據(jù)時(shí)發(fā)送到主窗口中、定義每個(gè)數(shù)據(jù)報(bào)中包含位圖數(shù)據(jù)的大小。define CM_RECEIVED WM_USER+2define GraphSize 1024(7)在對(duì)話框初始化時(shí)創(chuàng)建套接字,將其綁定到指定的位置,并初始化相應(yīng)的成員變量。(8)在對(duì)話框類(lèi)中添加一個(gè)SendData方法,用于向指定的地址發(fā)送數(shù)據(jù)。(9)想對(duì)話框中添加OnReceived方法,用于接收服務(wù)器端發(fā)來(lái)的確認(rèn)信息或控制信息。(10)向?qū)υ捒蛑刑砑酉⒂成浜?,將CM_RECEIVED消息與OnReceived方法關(guān)聯(lián)。(11)處理對(duì)話框WM_TIMER消息,在發(fā)送數(shù)據(jù),如果5秒內(nèi)沒(méi)有收到服務(wù)器端的確認(rèn)信息,發(fā)起當(dāng)前位圖的發(fā)送,重新抓取屏幕位圖發(fā)送。(12)處理對(duì)話框的OnOK方法,將屏幕信息轉(zhuǎn)換為位圖信息,劃分?jǐn)?shù)據(jù)報(bào)的格式,計(jì)算每一個(gè)位圖信息需要發(fā)送多少次數(shù)據(jù)報(bào),調(diào)用SendData方法發(fā)送數(shù)據(jù)??蛻?hù)端設(shè)計(jì)界面如圖6所示。圖6 客戶(hù)端界面設(shè)計(jì) 系統(tǒng)登錄模塊設(shè)計(jì) 系統(tǒng)登錄模塊實(shí)現(xiàn)過(guò)程(1)創(chuàng)建一個(gè)對(duì)話框,在對(duì)話框中添加1個(gè)圖像控件、2個(gè)標(biāo)簽、2個(gè)文本框和2個(gè)按鈕控件,設(shè)置控件主要屬性如表2所示。表2 系統(tǒng)登錄窗體用到的主要控件控件資源ID主要屬性設(shè)置用 途IDC_USERNAME無(wú)輸入登錄用戶(hù)名IDC_PASSWORDPassword屬性為T(mén)RUE輸入登錄用戶(hù)密碼(2)按Ctrl+W組合鍵打開(kāi)MFC ClassWizard對(duì)話框,選擇Member Variables選項(xiàng)卡,為控件命名。(3)修改對(duì)話框類(lèi)的PreTranslateMessage虛方法,當(dāng)文本框獲得焦點(diǎn)時(shí),按Enter鍵將控制焦點(diǎn)移動(dòng)。(4)處理“登錄”按鈕的單擊事件,驗(yàn)證用戶(hù)名和密碼是否正確。如果用戶(hù)名和密碼正確,關(guān)閉對(duì)話框并返回IDOK。(5)處理“取消”按鈕的單擊事件,以IDCANCEL標(biāo)示結(jié)束對(duì)話框。Void CLogin::OnBtCancle(){EndDialog(IDCANCEL)。}系統(tǒng)登錄模塊設(shè)計(jì)界面如圖7所示。圖7 系統(tǒng)登錄界面設(shè)計(jì) 主窗體設(shè)計(jì) 主窗體實(shí)現(xiàn)過(guò)程(1)創(chuàng)建一個(gè)基于對(duì)話框的工程,默認(rèn)情況下將創(chuàng)建一個(gè)對(duì)話框,該對(duì)話框?qū)⒊蔀閼?yīng)用程序的主窗體。(2)向?qū)υ捒蛑刑砑?個(gè)按鈕控件、2個(gè)群組框控件、1個(gè)圖像控件,設(shè)置控件屬性如表3所示。表3主窗體用到的主要控件控件資源ID主要屬性設(shè)置用 途IDC_BACKGROUNDType屬性為Frane Border屬性為T(mén)RUE顯示圖像信息IDC_SYSSETTINGCaption屬性為系統(tǒng)設(shè)置Owner draw屬性為T(mén)RUE調(diào)用系統(tǒng)設(shè)置對(duì)話框(3)向?qū)υ捒蝾?lèi)中添加成員變量。SOCKET m_Soxket 。 //定義套接字char* m_BmpData。 //位圖數(shù)據(jù)指針char* m_TempData。 //臨時(shí)數(shù)據(jù)指針char* m_Header。 //臨時(shí)指針BOOL m_ShowBmp。 //是否顯示位圖int m_BmpSize。 //記錄位圖大小int m_RecSize。 //實(shí)際接收的大小CString m_ClientIP。 //客戶(hù)端IPUINT m_ClientPort。 //客戶(hù)端端口WORD m_LeftTopX。 //位圖在屏幕中的X軸坐標(biāo)WORD m_LeftTOPY。 //位圖在屏幕中的Y軸坐標(biāo)(4)自定義一個(gè)消息,用于在套接字有數(shù)據(jù)接收時(shí)發(fā)送到主窗口中。define CM_RECEIVED WM_USER+1001(5)向?qū)υ捒蛑刑砑覵howImage方法,顯示位圖數(shù)據(jù)。(6)向?qū)υ捒蛑刑砑覱nReceived方法,用于接收客戶(hù)端發(fā)來(lái)的數(shù)據(jù)。在數(shù)據(jù)接收后,想客戶(hù)端發(fā)送確認(rèn)信息。(7)在對(duì)話框的消息映射部分手動(dòng)添加一個(gè)消息映射,用于將CM_RECEIVED與OnReceived方法關(guān)聯(lián)。ON_MESSAGE(CM_RECEIVED,OnReceived)(8)向?qū)υ捒蛑刑砑覱nButtonDown方法,用于向客戶(hù)端發(fā)送控制指令。(9) 在對(duì)話框的消息映射部分添加一個(gè)ON_COMMAND_RANGE消息映射宏,用以處理按鈕的單擊事件。ON_COMMAND_RANGE(IDC_BTUP,IDC_BTUP,IDC_BTRESTORE,OnButtonDown)(10)在對(duì)話框初始化時(shí)創(chuàng)建并綁定套接字,從數(shù)據(jù)庫(kù)中讀取客戶(hù)端IP。(11)處理對(duì)話框的OnCancel方法,在對(duì)話框關(guān)閉時(shí)釋放分配的內(nèi)存,防止內(nèi)存泄露。Void CServerDlg::OnCancel(){m_BmpData=m_Header。 //將緩沖區(qū)指針指向緩沖區(qū)的開(kāi)始位置delete[]m_BmpData。 //釋放緩沖區(qū) delete[]m_TempData。 //釋放臨時(shí)緩沖區(qū)CDialog::OnCancel()。 //調(diào)用父類(lèi)的OnCancel方法關(guān)閉對(duì)話框}
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1