




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、聊天程序設計報告-網(wǎng)絡編程設計報告目 錄 【1】 設計原理1【2】 功能描述1【3】 詳細設計2【4】 工作進度7【5】 設計總結8【6】 使用方法9【7】 附錄9一. 設計原理計算機網(wǎng)絡技術發(fā)展至今已經大大超越了人們當初的預想,無論是人們日常的工作還是學習,我們都越來越多的依靠到互聯(lián)網(wǎng)。各種實時性的聊天娛樂軟件也同時誕生,而且為我們的即時通訊帶來了眾多的方便,比如說大家所熟知的騰訊QQ、微軟的MSN、中國移動的Fetion等,都是做的比較成功的實時聊天工具。隨著網(wǎng)絡的日益普及,各種聊天工具也層出不窮,但當我們學習了網(wǎng)絡編程這門課程之后,我們便會覺得,其實要實現(xiàn)簡單的網(wǎng)絡通訊其實并不難。接下來
2、的課程設計就是針對一個簡單的網(wǎng)絡聊天程序,利用MFC為開發(fā)工具,實現(xiàn)基本的通訊功能。此程序主要分為兩個模塊:服務線程和聊天線程。服務線程用于提供一個網(wǎng)絡端口,等待客戶線程發(fā)出請求,登錄到作為服務端的程序,然后進行網(wǎng)絡通訊和消息的收發(fā);客戶端可通過服務器端的IP地址發(fā)送連接請求,然后建立連接,進行通訊。整個程序的主體使用了CSocket類的方法,實現(xiàn)了網(wǎng)絡通訊聊天。二功能描述(需求分析)1、一對一會話。此程序既可以作為服務器,也可以作為客戶端。當發(fā)起聊天請求時是客戶端,而當接受連接請求時時服務器。通訊基于可靠的TCP連接。2、修改聯(lián)系人通訊地址。 可以根據(jù)聯(lián)系人IP地址和端口的不同建立不同的連接
3、??梢詫崟r修改聯(lián)系人的地址。3、多線程技術。進程啟動時會開啟一個專門用于監(jiān)聽連接請求的服務進程,線程函數(shù)為UINT threadListen(LPVOID lpParam),用來被動接受聊天請求。無論是主動發(fā)起聊天請求還是被動接受連接請求,都將啟動一個名為CIMTalking的線程,專門處理聊天業(yè)務。4、整個程序的主體使用了基于CSocket類的網(wǎng)絡編程方法,綜合運用了CSocket、CSocketFile、CArchive等類的方法,實現(xiàn)了網(wǎng)絡通訊聊天。IM的功能可劃分為以下幾點:1) 界面顯示:將在線好友顯示在好友列表中,并實現(xiàn)好友分組,便于選擇聯(lián)系人。2) 聊天功能:與好友聊天。3) 聊
4、天紀錄:能保存聊天紀錄,并能察看聊天紀錄。(未實現(xiàn))4) 信息提示:當連接失?。ㄒ话銥閷Ψ讲辉诰€)時,提醒用戶連接失敗及原因。5) 修改聯(lián)系地址:由于本聊天程序不涉及登錄服務器,故開啟進程即為在線,否則離線。故需要動態(tài)修改聯(lián)系人IP地址及端口號。聊天處理聊天程序監(jiān)聽連接請求發(fā)送消息接收消息保存聊天記錄顯示聊天記錄聊天程序模塊圖三、詳細設計程序中主要變量及類的功能說明如下:CIMTalkingDlg - 聊天過程處理函數(shù)類CIMTalking - 用于處理聊天過程的運行時類peerAddress - 聯(lián)系人地址,包括套接字地址和聯(lián)系人姓名,這是一個結構體CIMApp - 程序主線程CIMDlg
5、- 程序UI線程,用于處理消息,界面窗口初始化等工作CChatSock - 專門用于聊天的套接字類,繼承自CSocketCAddrDlg - 顯示聯(lián)系人地址、修改聯(lián)系人地址CAboutDlg- 顯示程序版本信息聯(lián)系人地址結構體類型:struct peerAddressstruct sockaddr_in peerAddr;/對方地址char peerName20;/對方姓名;類圖框架用Visual Studio 2008逆向工程導出的詳細類圖開始聊天?輸入新地址編輯聯(lián)系人地址?選擇聯(lián)系人NY等待連接請求有連接請求?N結束關閉主程序聊天結束,關閉聊天窗口開始聊天/收發(fā)消息YN發(fā)起連接請求程序流程
6、圖UI設計程序主界面聊天對話框界面修改聯(lián)系人地址對話框界面四工程進度計劃進度如下:第一階段 6月4號-6月10號分析功能要求第二階段 6月11號-6月12號分析模型、設計模型、詳細設計第三階段 6月13號 開始編碼實現(xiàn)程序并開始進行文檔編寫五、設計總結41 程序的應改進之處:1、無法知道聯(lián)系人是否在線,除非連接;而且若把聯(lián)系人的套接字地址,即IP地址和端口搞錯,通訊失敗。即使對方在線,也有可能出錯;這是本程序最大的缺憾。2、被連接時自動啟動窗口,表示對方已經發(fā)起聊天請求,可以改為發(fā)送第一條消息后自動彈出聊天窗口。3、聊天記錄文件應該加密,雖然在本程序中沒有實現(xiàn)。4、可以在程序啟動后立即 探測聯(lián)
7、系人的狀態(tài),并在用戶界面上顯示其狀態(tài),即是否在線。42個人小結1、 在做這次網(wǎng)絡創(chuàng)新實驗之前基本上還沒接觸過MFC套接字網(wǎng)絡編程,這次實驗是在邊學習邊實踐的基礎上完成的。由于臨近考試,因此做的時間不多,做的結果不太好,與自己原來的設想還有點差距。2、 通過“計算機網(wǎng)絡基礎”自己對網(wǎng)絡的基礎知識也打下了很好的基礎。這次網(wǎng)絡實驗可以說是在理解網(wǎng)絡的基礎上對Windows Socket 編程的一次學習過程,雖然做的不好,但也學到了很多知識,對自己以后進行網(wǎng)絡開發(fā)有很大的幫助。3、 在做本次實驗時,我盡可能的將上一學期學的軟件工程思想運用到這次開發(fā)實驗中來。在進行詳細設計之前,先進行需求功能分析,在功
8、能分析的基礎上,劃分程序的框架,創(chuàng)建類來分擔不同的功能,并根據(jù)類的功能加入函數(shù)和變量,這對詳細設計有一個總綱的作用。4、 在開始這個設計之前,對MFC編程(大一開設的半學期課程)只是初步了解,沒有掌握MFC編程的原理。通過本次設計,對MFC的機制乃至Windows程序的運行機制加深了了解,同時基本掌握了MFC編程方法,這是本次設計最大的收獲之一!5、 一些東西貌似很簡單,但在實現(xiàn)時往往遇到意想不到的困難。比如本次設計中,由于缺乏編程經驗,加入如何開啟一個新的線程,與控制臺程序就有很大不同,雖然思想相同; 再比如一些控件的使用方法, 比如右擊一個樹形控件子項目,如何獲取其text,就是一個問題,
9、費了很大力氣才發(fā)現(xiàn)少了如下語句:ScreenToClient(&myPoint);/該函數(shù)把屏幕上指定點的屏幕坐標轉換成用戶坐標然后再執(zhí)行m_hTreeItem = m_friends.HitTest(myPoint, &uFlags);/獲取選取的項目的控件句柄6、 第一次在本次設計中用到了C+關鍵字 extern ;第一次在MFC程序中用到了全局變量;第一次在程序中使用MFC多線程函數(shù)AfxBeginThread();第一次試用了CTreeCtrl等控件;第一次實現(xiàn)了CSocket、CSocketFile、CArchive類的聯(lián)合使用以實現(xiàn)消息的發(fā)送和接收;對MFC套接字實現(xiàn)消息收發(fā)的原理有了較深的了解。總結:動手是提高的最佳手段!雖然過程中會遇到很多令人沮喪的問題,但解決這些問題之后是一種強烈的成就感!6、 使用方法要進行通信,需要編譯兩個不同程序
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年芳香保健師(初級)職業(yè)技能鑒定試題解析與實戰(zhàn)
- 2025年叉車司機(中級)叉車操作技能與叉車操作技能與叉車操作效率考試試卷
- 2025年法語DELFA級聽力測試試卷與答案
- 永遠的英雄致敬消防員讀后感(6篇)
- 2025年中國慢性淋巴細胞白血病的診療指南試題
- 我心中的桃花源作文12篇
- 環(huán)保話題的周記寫作(4篇)
- 建筑材料采購與質量監(jiān)督合同
- 工業(yè)互聯(lián)網(wǎng)平臺霧計算協(xié)同機制在智能城市公共設施管理中的應用報告
- 介紹我的學習伙伴:描述同桌的特點與故事13篇
- 食堂從業(yè)人員知識培訓考核試題與答案
- 柯南偵探原理詳解之3柯南與干冰(專業(yè)應用)
- 合同能源管理協(xié)議書范本
- 壓力容器使用年度檢查報告(范本)
- 壓力管道安裝質量證明書新
- 大氣海洋數(shù)據(jù)分析與同化考試復習題
- 轉預備、預備轉正各種無記名投票表格匯總(20201230021242)
- 腰椎間盤突出癥的診斷、鑒別診斷與分型
- 閥體零件機械加工工藝及裝備設計
- LD型單梁起重機使用說明書
- 國家開放大學電大《生產與運作管理》論述分析計算題題庫及答案
評論
0/150
提交評論