一、概述
(一)系統需求分析
系統根據企業或校園等局域網內用戶間進行即時通信設計而成。本系統力求提供給用戶一個簡潔、操作方便的信息交流平臺,界面設計要求簡潔明了,應具有以下功能要求:①確保系統易用性;②規范、準確的在線用戶列表維護;③用戶間點對點即時通信;④用戶間文件的傳送功能;⑤可根據需要進行用戶間通信監控;⑥用戶信息的統一管理。
(二)軟件環境
本系統開發的軟件環境為:操作系統為WinXP、Win7等,開發平臺使用VS 2008,數據庫使用MySQL。
(三)相關技術簡介
開發本系統,在VS2008平臺下,運用了基于對話框的MFC、WinSock網絡編程、多線程、基于.NET平臺下的Visual C++等技術實現相關功能。
①WinSock:Socket是面向C/S模型而設計的,Socket接口是TCP/IP網絡的API。WinSock規范以Socket 接口為范例定義了一套微軟Windows下網絡編程接口,旨在為提供給應用程序開發者一套簡單的API,并讓各家網絡軟件供應商共同遵守。
②多線程:進程是指在系統中正在運行的一個應用程序;線程是系統分配處理器時資源的基本單元,或者說進程之內獨立執行的一個單元。對于操作系統而言,其調度單元是線程。一個進程至少包括一個線程,通常將該線程稱為主線程。一個進程從主線程的執行開始進而創建一個或多個附加線程,就是所謂基于多線程的多任務。
二、系統功能設計
(一) 服務器端功能設計
本系統主要功能集中于系統服務器端,服務器端的功能主要包括:用戶管理、廣播信息、修改密碼、聊天日志管理(管理監控客戶端通信信息所保存的資料)、客戶端連接管理(包括客戶端上線下線信息管理、客戶端聊天監視)等。
(二)客戶端功能設計
客戶端的功能包括:用戶管理(包括用戶注冊、用戶登錄、用戶資料查看、用戶個人資料修改等)、接收廣播信息、通信管理(包括與好友進行文字聊天同時還可以進行文件傳輸)。
(三)系統功能結構圖
本系統功能結構圖如圖所示。
(四)數據庫邏輯結構
系統后臺數據庫采用開源的MySQL數據庫。根據系統的需要,設計有三個數據庫表,具體為:
①用戶信息表:用于存儲與系統用戶個人相關的信息,主要包括用戶ID、用戶名、登錄密碼、用戶年齡、郵箱地址、聯系電話、所在部門等。
②管理員信息表:用于存儲與系統管理員相關的信息,包括管理員帳號、管理員登錄密碼等。
③聊天記錄表:用于存儲聊天日志保存信息、雙方聊天用戶ID、聊天時間、文件保存位置等。
三、主要功能模塊設計與實現
(一) 在線用戶列表模塊設計
當用戶成功登錄系統,系統服務器端負責實時更新、維護并向客戶端發送在線用戶列表,客戶端點擊刷新,向服務器端獲取當前最新的在線用戶列表。服務器端實現如下:
onlineUser[index].id=atoi(szUser);
onlineUser[index].nickname=nickname;
onlineUser[index].ip=pSI->ip;
onlineUser[index++].pSI = pSI;
(二) 用戶通信模塊設計
當用戶點擊在線用戶列表中的一個用戶之后,會彈出一個聊天對話框,在這個對話框里面可實現用戶間的點對點通信,包括文字聊天與文件傳輸。
發送文件核心代碼如下:
connect(cliFSock, inAddr, sizeof(inAddr));
send(cliFSock,buff,sizeof(buff),0);
接收文件核心代碼如下:
while(dwRead {byte* data=new byte[MBUFFSIZE]; UINT dw=m_myFile.Read(data, MBUFFSIZE); if((s=send(sAccept,(char *)data, dw,0))==SOCKET_ERROR)break; dwRead+=dw; } (三) 通信監聽模塊設計 此功能的設計,是為了保證企業內部信息的安全,管理員可實時監控用戶聊天內容,以防止內部機密泄漏。當客戶發起聊天時,會向服務器發送聊天雙方的基本信息,包括用戶ID、用戶IP地址、發起聊天時間等信息,服務器端有一個監控窗口,顯示了系統中所有正在聊天的用戶,管理員可根據實際點擊開始監控正在聊天的用戶。 此功能設計思路為:服務器端與客戶端轉換角色,由服務器端連接需要監控的正在聊天的兩個客戶端,核心代碼如下: connect(m_moniSock1, inAddr, sizeof (inAddr)); recv(m_moniSock1,buff,sizeof(buff),0); connect(m_moniSock2, inAddr, sizeof (inAddr)); recv(m_moniSock1,buff,sizeof(buff),0); 最終,管理員可根據內容需要保存監控內容,并且可查詢歷史聊天監控內容。 四、 結束語 在VS平臺上,使用MFC進行本系統的設計,可以減輕程序員的工作量,提高系統設計的靈活性。本軟件系統可用于企業內部局域網,可更加方便的實現內部員工之間的信息交流,提高工作效率,提供聊天監控功能,保證了企業機密信息的安全性。 注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文