【正文】
, CHATROOM_CLIENT_PORT, NULL )。}聊天室服務器接收到消息時,會將接收到的消息加入到聊天室接收文本框,并將消息發(fā)給所有在聊天室中的好友,除了向服務器發(fā)送消息的好友外:for( int nIndex1 = 1。圖47 聊天室客戶界面首先,主對話框接受到CHATROOM_ADDREQUEST消息,彈出對話框詢問用戶是否進入好友創(chuàng)建的聊天室,如果用戶拒絕加入則不用處理此消息,如果用戶同意加入聊天室,那么就彈出聊天室客戶端。 傳送文件模塊傳送文件模塊的設計目的是為了方便用戶之間的文件傳送。當用戶選擇好傳送的文件和傳送的好友后,傳送信息會加入到列表框,并調(diào)用主對話框的SendFilesNotify()函數(shù)向這些好友發(fā)送傳送文件的消息,此消息中還包括文件名和文件長度。 ( pSFSThread )。如果接受者停止了接收文件或者文件傳輸完成,相應的線程也會調(diào)用RefreshListBox()函數(shù)及時的刷新列表框。在傳輸文件對話框中設置了一個定時器,用于刷新列表框。 pSFSThreadAttachSocket( () )。下面詳細介紹服務器端的工作過程:傳送文件用到的是TCP連接,因為傳送文件必須保證傳輸?shù)臄?shù)據(jù)不能丟失也不能有誤。以上就是聊天室的設計方法??蛻舳说奶幚肀确掌饕唵我恍?,客戶端只有在聊天室列表中的好友,客戶端也只向服務器發(fā)送消息,不用向其他聊天室好友發(fā)送消息。 nIndex++ ){ USER user = ( nIndex )。 nIndex ()。在未進入聊天室好友列表中選定要添加進入聊天室的好友,單擊向上的按鈕,會向這些選定好的好友發(fā)送加入聊天室的請求。聊天室分為服務器和客戶端,每個用戶只能創(chuàng)建一個聊天室,也只能加入一個聊天室。消息發(fā)送者收到請求發(fā)送消息的消息后,會把相應的數(shù)據(jù)包發(fā)送給聊天對方。if (!AfxSocketInit( amp。 ( szMessage )。 … CString strSend = ()。 lpDllEntryPoint = GetProcAddress( hLib, DllRegisterServer )。 }} 聊天模塊聊天模塊提供的是兩個已連接好友之間的聊天服務,其聊天內(nèi)容既可以是文字聊天也可以是圖片聊天。 = REQUEST_KEEPCONNECT。 if( ( ) ) { ( nIndex )?!∨c好友保持連接此功能用到了定時器,間隔一定時間向所有好友發(fā)起請求保持連接的消息,并把發(fā)送過此消息的好友添加到一個臨時好友列表中。在AddRequest()函數(shù)中,先進行相應的判斷,如果具備加為好友的條件,根據(jù)是否允許直接加為好友的值是否彈出提示對話框。memcpy( pSendData + sizeof( DATAPACKET ), amp。 = m_bCamera?!√砑雍糜?,這一節(jié)介紹的是具體的實現(xiàn)。在向好友列表框中添加好友時,主對話框調(diào)用好友列表框的AddUser()函數(shù),參數(shù)為USER結(jié)構(gòu)體,這個參數(shù)作為列表項的額外數(shù)據(jù),這樣重繪的時候再讀取出這個額外數(shù)據(jù)就可以得到這一項的用戶信息。 /// 頭像圖像列表int m_nCamera。要使按鈕無效,必須調(diào)用EnableWindow( FALSE )函數(shù)來更改按鈕的狀態(tài),我們也就無法更改m_nState的值。 break。以上代碼告訴系統(tǒng),當鼠標離開m_hWnd窗口時,向這個窗口發(fā)送一條WM_MOUSELEAVE消息。 ( this, strText )。要實現(xiàn)按鈕自繪,必須更新按鈕的風格為自繪,可以在按鈕的屬性中更改,也可以使用代碼更改。 /// 按鈕的狀態(tài)CBitmap m_bmpNormal。運行程序后,并在主界面中作相應的設置。也可以從IP輸入框里選擇以前加過的好友IP。只允許運行一個實例,有多種方法,本設計采用的是創(chuàng)建命名事件的方法:HANDLE hEvent = ::CreateEvent( NULL, FALSE, FALSE, InstantMessaging )。void OnShellNotifyProc( WPARAM wParam, LPARAM lParam )。 = WM_SHELLNOTIFY。 }}void CInstantMessagingDlg::OnCancel() { if( IDOK == MessageBox( 要退出嗎?, 退出, MB_OKCANCEL | MB_ICONINFORMATION | MB_DEFBUTTON2 ) ) { … DestroyWindow()。BEGIN_MESSAGE_MAP(CInstantMessagingDlg, CDialog) … ON_MESSAGE( WM_HOTKEY, OnHotkey ) … //}}AFX_MSG_MAPEND_MESSAGE_MAP()在消息映射中,我們用OnHotkey()函數(shù)來處理WM_HOTKEY消息。wndTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE )。dlgParent )。}在函數(shù)或語句組的開始處定義一個CDebug變量,當程序運行到變量定義處的時候,會打印出run in : test,當程序執(zhí)行完函數(shù)或語句組時,會打印出run out : test,這樣我們就可以知道程序運行到何處,極大的方便了我們對程序的調(diào)試。期中構(gòu)造和析構(gòu)函數(shù)如下:CDebug::CDebug( CString strMessage ){ m_strMessage = strMessage。這樣處理還有一個好處,如果需要修改某些宏的值,而不用到處去找宏的定義,方便和快捷。(3) 白板模塊:多個用戶端之間的白板信息傳送。第二,介紹本軟件的詳細設計。 可行性分析軟件可行性分析最根本的任務是對以后的行動方針提出建議。在程序的設計過程中,要求能盡可能多的設想到用戶使用過程中可能發(fā)生的事件,并能在判斷事件后做出相應的處理,使程序具有較高的容錯性能?!?shù)據(jù)需求分析(1)客戶端之間聊天信息。在信息傳輸中,預計利用TCP/IP協(xié)議中的UDP協(xié)議,這是面向無連接的協(xié)議,但發(fā)送速度快,用于聊天信息傳輸用適合。由于運輸層提供了高可靠性的端到端的通信,因此應用層可以忽略所有這些細節(jié)。從分層模型方面來講,TCP/IP由四個層次組成:鏈路層、網(wǎng)絡層、傳輸層、應用層。即將數(shù)據(jù)的發(fā)或收,放在一個具有一定優(yōu)先級(一般宜取較高優(yōu)先級)的輔助線程中,在數(shù)據(jù)發(fā)或收期間,主程序仍可進行其它工作,譬如利用上一個周期收到的數(shù)據(jù)繪制曲線 。切記CArchive是不能和數(shù)據(jù)報套接字一起工作的。 (2)使用這個對象的Create()成員函數(shù)產(chǎn)生一個socket對象。 所采用的網(wǎng)絡通信協(xié)議一般是TCP / IP。這些擴充有利于應用程序開發(fā)者編制符合Windows編程模式的軟件,它使在Windows下開發(fā)高性能的網(wǎng)絡通信程序成為可能。這些擴充主要是提供了一些異步函數(shù),并增加了符合WINDOWS消息驅(qū)動特性的網(wǎng)絡事件異步選擇機制。AppWizard可以用來生成初步的框架文件,資源編輯器用于幫助直觀地設計用戶接口,CLassWizard用來協(xié)助添加代碼到框架文件,并且提供文檔/視圖結(jié)構(gòu)支持,從而使用應用程序開發(fā)變得輕松?! ≡谕ㄐ殴ぞ呱希覀兞晳T了通過類似于,MSN之類的程序軟件和天南地北的朋友聊天、發(fā)信息,不過所有聊天程序都需要Internet的支持,因此它們無法在局域網(wǎng)內(nèi)部大顯身手,那么是否想到過要讓單位內(nèi)部的員工,寢室周圍的同學,不用上Internet就可以輕松體驗到內(nèi)網(wǎng)通訊的樂趣呢?有了這種想法,本課題的研究內(nèi)容——開發(fā)局域網(wǎng)通信軟件就有了必要性,讓單位員工或者寢室同學不出內(nèi)網(wǎng)就能自由通信。但絕大多數(shù)企事業(yè)單位只把即時通訊類產(chǎn)品作為邊緣產(chǎn)品,沒有充分的認識到即時通訊類產(chǎn)品在工作中的重要作用,沒有想過去如何正確的應用。應用局域網(wǎng)辦公的企業(yè),必須要有自己企業(yè)內(nèi)部的通訊軟件,然而,現(xiàn)在,在廣域網(wǎng)上,可盈利的通訊軟件到處都是,而局域網(wǎng)內(nèi)的通訊軟件卻很少,在功能上,也是參差不齊。s life, network munication has been more and more get the favor of people. This topic is to develop an internal munication system based on UDP, local area network (LAN) can be used in a closed environment, also can be used under the environment of Internet. This software is based on vc + + development, adopt the method of software engineering, application programming technology, network technology, using the WINSOCK API interface. WINSOCK is in Windows network munication programming API interface, also is the standard of Windows network main content of the research is how to use the socket network munication program, mainly pleted the client sends a message, send pictures to show online users and many people chat, file transfer, transfer function is one of the highlights of this software system, it can realize the file transfer between two the use of chat, let distribution in different locations, a group of users will be able to use different machine exchange of information in a timely manner, in order to achieve the purpose of information sharing, so as to improve the efficiency of work or test, the software operation is simple, flexibility is good, operation is stable, can be widely used.IIKey words:UDP。本軟件是基于VC++,采用軟件工程的方法,應用了程序設計技術、網(wǎng)絡技術,運用了WINSOCK相關API接口。在這個項目中,研究人員為TCP/IP網(wǎng)絡通信開發(fā)了一個API(應用程序接口)。文件傳輸功能是本軟件系統(tǒng)的一個亮點,它可以讓兩個用戶之間實現(xiàn)文件的傳遞。Network munication目 錄摘 要 IAbstract II第1章 緒 論 1 課題選題背景 1 國內(nèi)外現(xiàn)狀分析和研究成果 1 課題研究內(nèi)容及意義 2第2章 相關技術概述 3 開發(fā)環(huán)境 3 開發(fā)工具簡介 3 Visual C++ MFC概述 3 WinSock網(wǎng)絡編程 3 Socket簡介 4 開發(fā)Windows Sockets網(wǎng)絡通信程序的軟、硬件環(huán)境 4 CSocket類編程模型 5 Sockets程序開發(fā)的技術要點 5 TCP/IP協(xié)議概述 6第3章 軟件需求分析 7 需求分析 7 功能需求分析 7 數(shù)據(jù)需求分析 7 性能需求分析 7 運行需求分析 8 可行性分析 8 經(jīng)濟可行性分析 8 技術可行性分析 8 運行可行性分析 8第4章 軟件系統(tǒng)設計 9 概要設計 9 基本框架設計 10 宏和數(shù)據(jù)結(jié)構(gòu)的定義 10 程序配置文件 10 調(diào)試模塊 10 主界面初始化 11 主界面布局 15 自繪按鈕 16 自繪好友列表框 18 好友管理 19 添加好友 19 刪除好友 21 與好友保持連接 22 聊天模塊 23 聊天室模塊 26 傳送文件模塊 29 共享屏幕模塊 32 白板模塊 34第5章 軟件測試 36 軟件測試的目的 36 軟件測試方法分類 36 靜態(tài)測試與動態(tài)測試 36 黑盒測試與白盒測試 36 測試中的錯誤分類 37 通訊軟件測試 38 測試用例設計要求 38 聊天模塊測試用例 38 測試總結(jié) 38結(jié) 論 40致 謝 41參考文獻 42附 錄 43第1章 緒 論 課題選題背景近年來,隨著全球信息化的不斷發(fā)展,網(wǎng)絡也在飛速發(fā)展。 國內(nèi)外現(xiàn)狀分析和研究成果即時通訊工具是目前使用最為普遍的網(wǎng)絡應用軟件之一,繼出現(xiàn)在我們的計算機上之后,網(wǎng)易、新浪、搜狐等知名公司也迫不及待地加入了這一領域的競爭,而微軟、雅虎、AOL的國際巨頭公司也一刻沒有停止自己擴張的腳步。隨著我們國家的信息化飛速發(fā)展,許多企事業(yè)單位信息化程度大幅度提高。