前面的章節介紹了大致的實現構架與**,本節就我實際編寫過程中的感受做乙個小小的總結吧:
一開始選擇這個課題並未對socket程式設計這一塊有過多的了解,由於暑假期間還要實習,時間並不充裕,從開始學習到課題完成總共有乙個半月左右;
我的學習歷程:
c語言的socket程式設計:
花了一兩周時間把書上的示例差不多都敲打了一遍甚至數遍,才算有了乙個大概的認識,認為可以走下一步了;
mfc程式設計:
因為之前都是用的c,而要使用者介面要用mfc程式設計,雖然之前學過c++但也只是了解一些基本特性,因此又花了一周時間看完學習教材和示例後,覺得可以真正著手程式設計了;
接下來繼續客戶端的編寫,其中有幾個關鍵點:
1.資訊包的編碼設定:因為涉及到的資訊包型別有不低於二十個,對每乙個資訊包的編碼還是很重要的,不僅需要盡量的滿足擴充性,通過編碼還能體現資訊包之間的關係;
2.幾個關鍵的結構體:
好友資訊結構體:存放了每個好友的詳細資訊資料,根據登陸成功時接收到的好友列表進行初始化;
好友結構體:存放了好友列表與陌生人列表的好友id與對應的樹形列表控制項專案,主要用來管理新增或刪除好友;
聊天視窗結構體:管理聊天視窗,當有好友資訊到來時,先檢索該結構體中是否已建立了對應的聊天視窗,如果沒有則建立新的聊天視窗並更新該結構體;
至於伺服器的程式設計,個人認為最費時間的是資料庫的搭建,而執行緒用例的程式設計雖然也費時間,但不會在乙個問題上卡太久,而且在有了最基礎的構架後,逐漸新增內容還是很有效率的;
至於除錯,也是個麻煩事,因為系統的各功能在穿插執行的時候還真有可能出問題,而且需要大量的實驗,雖然最了解程式的人是編寫者自己,但總感覺這種事還是有個專門的除錯人員好,怪不得研發公司都有專門的程式測試員;
在當初做完這個系統,心裡還是有小小喜悅的,不過時隔一月有餘,加上最近有看了《深入淺出mfc》這本書,發現以前還真是井底之蛙,程式設計只會對著嚮導不斷的click,一些內部運轉機理是十分模糊或完全不知道的,又加上最近找工作的壓力,越發能感受到自己的不足,不過對於自己的學習能力,還是相當有信心的,看得書越多,越發覺找工作的興趣不是那麼濃厚了,而且找工作本身也是浪費時間的一件事;
總得來說,筆者做這個課題的目的主要是只是為了學習,在創新上面沒什麼亮點,所以也不能算為登堂之作,不過能記錄下這些點點滴滴,聊以**倒也是一種欣慰罷。
最後,希望自己能不斷的知其所以然,不斷進步!
自製即時通訊系統 socket網路程式設計(2)
剖析 伺服器程式 32位控制台程式 1.主線程 2.請求連線的套接字緩衝區 每乙個客戶端的連線請求都會先插入到套接字緩衝區中 3.偵查執行緒 迴圈從套接字緩衝區中檢查是否有未處理的套接字,如果有,則建立新的客戶端用例執行緒進行處理,並在緩衝區中刪除該套接字 4.客戶端用例執行緒 用來處理連線狀態中的...
即時通訊系統
企業擁有一套理想的即時通訊系統,正如找到了一位得心應手的商務秘書。然而,縱觀當前企業即時通訊市場,同質化的即時通訊軟體比比皆是,而能夠讓企業真正根據自身需要來按需定製 人性化開發的即時通訊系統卻少之又少。傳統開發理念讓企業被動使用即時通訊。目前,大多數的軟體提供商還在用傳統的開發理念來開發企業即時通...
即時通訊系統IM
背景 即時通訊 instant messaging 是目前internet上最為流行的通訊方式,各種各樣的即時通訊軟體也層出不窮 服務提供商也提供了越來越豐富的通訊服務功能。不容置疑,internet已經成為真正的資訊高速公路。從實際工程應用角度出發,以計算機網路原理為指導,結合當前網路中的一些常用...