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

正文內(nèi)容

基于vc的企業(yè)內(nèi)部通信軟件的設(shè)計與實現(xiàn)計算機優(yōu)秀畢業(yè)論文-免費閱讀

2024-07-22 18:49 上一頁面

下一頁面
  

【正文】 每當(dāng)定時器時間到時,程序調(diào)用RefreshListBox()函數(shù)刷新列表框,更新文件傳輸?shù)倪M度和速度。 pSFSThreadResumeThread()。用戶打開文件傳輸功能,彈出傳輸文件對話框,在初始對話框的時候,除了初始化傳輸文件列表框,還會創(chuàng)建一個端口號為SENDFILESSERVER_PORT的TCP套按字m_pSFServerSocket,并設(shè)置此套接字為監(jiān)聽狀態(tài)。服務(wù)器在當(dāng)中起到了中轉(zhuǎn)的作用,所有消息都經(jīng)過服務(wù),服務(wù)器向所有好友發(fā)送消息,就算聊天室中的好友不能互相連接,只要能連接到服務(wù)器,他們就可以一起聊天。聊天室客戶端如圖47所示。SendTextToIP( , CHATROOM_CLIENT_PORT, strSend, )。 nIndex++ ){ USER user = ( nIndex )。SendUserCommandToIP( CHATROOM_ADDREQUEST, , DEFAULT_PORT, amp。聊天室也只能發(fā)送普通文本消息,所以聊天室的開發(fā)相比聊天來說,相對簡單,但是設(shè)計目的與聊天也有所不同。對方接收到消息數(shù)據(jù)包后,把消息放入到接收消息的臨時空間,并判斷數(shù)據(jù)是否接收完畢。wsaData )){ AfxMessageBox(IDP_SOCKETS_INIT_FAILED)。 …}因為聊天用的Socket是主對話框的m_pLisSocket,因此是主對話框接收到的聊天消息。 /// 發(fā)送聊天消息 m_pMainDlgSendPreChatMessage( m_userChat, strTime, strSend )。 /// lpDllEntryPoint()。本系統(tǒng)用到了Microsoft Rich Textbox Control ,此控件支持RTF(Rich Text Format)格式的內(nèi)容,包括不同顏色、不同字體字號的文本和圖片。 /// 分配空間 UINT uDataLength = sizeof( DATAPACKET )。 ( nIndex )。好友收到請求保持連接的消息后,會發(fā)送回應(yīng)保持連接的消息。如果拒絕加為好友,則向發(fā)送者發(fā)送拒絕的消息。user, sizeof( USER ) )。 = m_wFace。首先,對話框定義監(jiān)聽Socket并初始化:CListeningSocket *m_pLisSocket。鼠標(biāo)在好友列表框上移動時,判斷鼠標(biāo)是否在刪除或攝像頭(如果有攝像頭)按鈕范圍內(nèi),如果在,就設(shè)置m_nDelIcon或m_nCamera為當(dāng)前項的序號,否則就設(shè)置m_nCurSel為當(dāng)前項的序號。 /// 攝像頭激活的序號int m_nDelIcon。lpDrawItemStructitemState的值表示了當(dāng)前按鈕的狀態(tài),可以檢測lpDrawItemStructitemState,如果按鈕是無效狀態(tài),則設(shè)置m_nState為DISABLE,否則不作改變。 case DOWN: DrawDOWN()。下面的處理方式與熱鍵和托盤通知消息的處理方式一樣,自定義這個消息處理函數(shù)就行了。 }VC++,只能為我們添加鼠標(biāo)移動、單擊等消息,我們得自己為自繪按鈕添加上鼠標(biāo)離開的消息。重載PreSubclassWindow(),在這個函數(shù)中更改按鈕風(fēng)格并初始化m_pToolTipCtrl。 /// 正常圖標(biāo)CBitmap m_bmpHover。在主界面,添加、聊天室、傳送文件和白板按鈕都是自繪按鈕,可以顯示圖片,有提示能力,當(dāng)鼠標(biāo)移動到其上一會兒后,會彈出提示框,而且這些按鈕都具有XP風(fēng)格,既鼠標(biāo)滑過時會顯示不同的狀態(tài)。程序允許保存10個最近聯(lián)系人的IP,當(dāng)新添加聯(lián)系人時,如果已保存了10個聯(lián)系人的IP,程序會按照時間的先后順序覆蓋之前的IP。if( hEvent ){ if( ERROR_ALREADY_EXISTS == GetLastError() ) { return FALSE。BEGIN_MESSAGE_MAP(CInstantMessagingDlg, CDialog) //{{AFX_MSG_MAP(CInstantMessagingDlg) … ON_MESSAGE( WM_SHELLNOTIFY, OnShellNotifyProc ) … //}}AFX_MSG_MAPEND_MESSAGE_MAP()void CInstantMessagingDlg::OnShellNotifyProc( WPARAM wParam, LPARAM lParam ){ if( lParam == WM_LBUTTONDBLCLK ) { … } else if( lParam == WM_RBUTTONUP ) { … }}與熱鍵處理一樣,OnShellNotifyProc()函數(shù)響應(yīng)我們對圖標(biāo)的操作,其中l(wèi)Param參數(shù)表示消息號,在本設(shè)計中只處理左鍵雙擊(顯示主界面)和右鍵單擊(彈出菜單)。 = NIF_ICON | NIF_MESSAGE | NIF_TIP。 }}在程序中處理OnSysCommand()函數(shù)和OnCancel ()函數(shù)就實現(xiàn)了我們要的功能。void CInstantMessagingDlg::OnHotkey( WPARAM wParam, LPARAM lParam ){ if( thisIsWindowVisible() ) { ShowWindow( SW_HIDE )。第一個參數(shù)就是將程序放到所有非頂層窗口的頂層,如果有多個程序都是頂層窗口,那么他們誰在上面,就要看當(dāng)前誰是激活的窗口。m_pMainWnd = amp。  主界面初始化用過的人都知道,主面板總是處于其他程序的上面,而且在任務(wù)欄沒有圖標(biāo),而是把圖標(biāo)放到了托盤區(qū),另外,我們還可以按Ctrl+Alt+Z默認(rèn)的快捷鍵隱藏和顯示主面板。 CString strTrace?!〕绦蚺渲梦募绦蛑泻芏嘈畔⑿枰4妫热缬脩裘蜔徭I,因些程序用到了配置文件。這個白板就是一個畫板,多個用戶建立連接之后,可通過此白板模塊達到信息共享的目的。詳細設(shè)計是先從基本框架的設(shè)計出發(fā),然后逐步介紹好友管理模塊、聊天模塊、聊天室模塊、傳送文件模塊、白板模塊。如果問題沒有可行的解釋,分析員應(yīng)該建議停止這項開發(fā)工程,以避免時間、資源、人力和金錢的浪費。(2)宜操作性,程序簡單易懂,容易上手使用。在控件上顯示時格式化,更易于用戶的查看自己發(fā)送或接收到的信息。(2)用戶端文件傳輸?shù)墓δ?,用戶之間可以斷點續(xù)傳文件。而UDP則為應(yīng)用層來提供。每一層負(fù)責(zé)不同的功能:(1)鏈路層,通常包括操作系統(tǒng)中的設(shè)備驅(qū)動程序和計算機中對應(yīng)的網(wǎng)絡(luò)接口。Visual C++ 、管理線程、同步化線程、終止線程等功能函數(shù)。 (6)使用CArchive對象的Read()、Write()等函數(shù)在客戶與服務(wù)方傳送數(shù)據(jù)。在客戶方程序中,除非需要數(shù)據(jù)報套接字,Create()函數(shù)一般情況下應(yīng)該使用默認(rèn)參數(shù)。Windows XP和Windows 7都帶有該協(xié)議。Socket實際上是指一個通信端點,借助于它,用戶所開發(fā)的Socket應(yīng)用程序,可以通過網(wǎng)絡(luò)與其它Socket應(yīng)用程序進行通信。Windows Sockets由兩部分組成:開發(fā)組件和運行組件。 Visual C++ MFC概述MFC(Microsoft Foundation Class Library)庫是Microsoft公司基于Windows的C++應(yīng)用程序編程接口,是Visual C++中編寫Windows應(yīng)用程序的首選方法。  企業(yè)內(nèi)部通信軟件是一個即時通信工具。還有許多企事業(yè)單位使用網(wǎng)絡(luò)個人交流工具(如,MSN),但存在許多安全隱患。因此,為了企業(yè)更好、更安全的通訊,我想到開發(fā)一款適用于企業(yè)的局域網(wǎng)通信軟件,恰好通過我的大學(xué)所學(xué),我有信心在老師的講解和指導(dǎo)下,很好的完成這任務(wù)。VC++。WINSOCK 是在Windows進行網(wǎng)絡(luò)通信編程的API接口,也是Windows網(wǎng)絡(luò)編程的標(biāo)準(zhǔn)。本科畢業(yè)設(shè)計(論文) 題目名稱:基于VC++的企業(yè)內(nèi)部通信軟件的設(shè)計與實現(xiàn) 摘 要八十年代初,美國政府的高級研究工程機構(gòu)(ARPA)給加利福尼亞大學(xué)Berkeley分校提供了資金,讓他們在UNIX操作系統(tǒng)下實現(xiàn)TCP/IP協(xié)議。研究的主要內(nèi)容是如何利用套接字編寫網(wǎng)絡(luò)通信程序,主要完成了客戶端的發(fā)送信息,發(fā)送圖片與顯示在線用戶及多人聊天,文件傳輸?shù)裙ぷ?。WINSOCK。最后,老師為我選定了基于VC++企業(yè)內(nèi)部通信軟件的設(shè)計與實現(xiàn)這一題目。許多開發(fā)商并沒有將此產(chǎn)品作為公司的重點,也并沒有從客戶的角度出發(fā),只是在產(chǎn)品線上附加即時通訊產(chǎn)品,做的不夠完善,使此產(chǎn)品淪為邊緣產(chǎn)品,從而導(dǎo)致即時通訊產(chǎn)品市場萎縮。因此,通過該軟件的設(shè)計和開發(fā),可以對自己所學(xué)習(xí)的知識進行了一次綜合提高,并且會有更深層次的理解和掌握,在這個過程中,還能激發(fā)自己的學(xué)習(xí)潛力,提高軟件開發(fā)的能力,加深對網(wǎng)絡(luò)協(xié)議和Windows環(huán)境下網(wǎng)絡(luò)編程的理解和掌握,所以,開發(fā)企業(yè)內(nèi)部通信軟件在理論和實踐上都有非常重要的意義。MFC是一組C++類,這些是由常用的Windows應(yīng)用程序定制的。開發(fā)組件:Windows Sockets 實現(xiàn)文檔、應(yīng)用程序接口(API)引入庫和一些頭文件。近年來,隨著計算機網(wǎng)絡(luò)與Windows 95的流行,許多用戶所開發(fā)的應(yīng)用程序需要實現(xiàn)網(wǎng)絡(luò)間的數(shù)據(jù)通信。但是,所開發(fā)的網(wǎng)絡(luò)通信應(yīng)用程序并不能直接與TCP / IP核心打交道,而是與網(wǎng)絡(luò)應(yīng)用編程界面Windows Sockets API打交道。而對于服務(wù)方程序,必須在調(diào)用Create時指定一個端口。(7)通訊完畢后,銷毀CArchive、CSocketFile和CSocket對象。(4)在許多情況下,要求通信模塊應(yīng)實時地收、發(fā)數(shù)據(jù)。用于處理與電纜等其他任何傳輸媒介的物理接口細節(jié)。(4)應(yīng)用層,負(fù)責(zé)處理特定的程序細節(jié)。在傳文件之前,首先創(chuàng)建一信息文件,記錄文件傳送的一些信息,并根據(jù)傳輸?shù)臄?shù)據(jù)量實時修改。(2)在線用戶列表信息。設(shè)計界面是,簡化界面的復(fù)雜性,模擬等現(xiàn)有即時通訊工具的界面,使用戶能很容易看懂并使用。 經(jīng)濟可行性分析由于本軟件的主要背景是畢業(yè)課程設(shè)計,不注重直接的經(jīng)濟效益和其后的發(fā)展方向,注重的是自身水平和能力的提高。所以本章是本論文的重點。建立連接的多個用戶都在看同一塊白板,在上面畫的圖、寫的內(nèi)容,都可以馬上會呈現(xiàn)給其他用戶。程序用讀取和寫入配置文件系列函數(shù)來管理此配置文件。 strTrace = run in : + m_strMessage + \n。不但是這樣處理的,很多聊天軟件都采用此種處理方式。dlg。最后一個參數(shù),是用位或|組后起來的,從字面意思上我們就能理解到這是不移動不改變大小的意思,忽略了當(dāng)中的4個參數(shù)。 } else { ShowWindow( SW_SHOW )。(5)托盤圖標(biāo)的顯示至此,程序已不在任務(wù)欄顯示圖標(biāo),已是最頂層窗口,而且也已有熱鍵功能,但是還沒有實現(xiàn)托盤圖標(biāo)的顯示。 = IDR_MENU1。在托盤添加圖標(biāo),退出程序前,如果沒有從托盤刪除圖標(biāo),那么托盤區(qū)的圖標(biāo)會一直保留下來,直到鼠標(biāo)移過托盤區(qū)引起托盤區(qū)的重繪,這當(dāng)然不是我們所希望的結(jié)果。 }}事件與普通變量不一樣,普通變量只在運行的當(dāng)前程序中有效,而事件在整個系統(tǒng)中都有效。在列表框展開下拉列表后,可以按DELETE鍵刪除選定的IP。用戶列表框也是自繪的,普通的列表控件無法顯示我們所需的信息。 /// 焦點圖標(biāo)CBitmap m_bmpDown。void CAdvButton::PreSubclassWindow() { ModifyStyle( 0, BS_OWNERDRAW )。TRACKMOUSEEVENT tme。自繪按鈕必須重載DrawItem()函數(shù),在DrawItem()函數(shù)中根據(jù)m_nState的值可以貼上不同的圖,表示按鈕的一不同狀態(tài)。 break。在畫按鈕的狀態(tài)時,使用到了TransparentBlt()函數(shù),這個函數(shù)可以貼透明位圖。 /// 刪除按鈕激活的序號int m_nCurSel。用戶雙擊鼠標(biāo)時,調(diào)用主對框的相應(yīng)函數(shù),并把項的序號傳給此函數(shù)。m_pLisSocket = new CListeningSocket( this )。memcpy( , ( MAXNICKNAMELENGTH + 1 ), MAXNICKNAMELENGTH + 1 )。/// 發(fā)送請求m_pLisSocketSendTo( pSendData, uDataLength, DEFAULT_PORT, strFriendIP )。否則先把發(fā)起者的USER信息加入到好友列表中,再向請求者發(fā)送允許加為好友的消息,消息中包括自己的USER信息。程序收到回應(yīng)保持連接的消息后,會從臨時好友列表中刪除對應(yīng)的好友。 nIndex。 BYTE *pSendData = new BYTE[ uDataLength ]。要使用此控件,系統(tǒng)中必須注冊了此控件,如果未注冊此控件,那么打開聊天對話框時程序會死掉。 }}聊天對話框,如圖45所示。}單擊“發(fā)送”按鈕或CTRL+ENTER鍵,程序會調(diào)用OnSend()函數(shù),首先得到發(fā)送的時間和發(fā)送的內(nèi)容,得到的是RTF格式的內(nèi)容,因此strSend中還包括了文字的格式和圖片信息。主對話框接收到聊天消息后,根據(jù)消息發(fā)送的來源IP來處理消息。 return FALSE。如果沒有接收完畢,繼續(xù)請求發(fā)送下一個消息數(shù)據(jù)包。聊天室服務(wù)器如圖46所示。userSelf )。 SendUserCommandToIP( CHATROOM_SERVER_CLOSED,
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1