自己動手寫聊天軟體

來源:互聯網
上載者:User

    這個項目是我上大學的時候寫的(雖然我現在還沒畢業),以專業的眼光看來,這個聊天軟體的架構是比較差的。但在一年前,這的確是我的最高水平了,呵呵。

    真佩服當時的自己,水平差得不用說,但卻可以花大量的時間去完成一個幾乎是不可能完成的項目,結果花了幾個月,終於搞出一個成果了,至少可以正常運行了,後來我去找實習的時候,這個項目也幫我得到了不少的面試機會(當然都是小公司的面試機會)。呵呵。

好了,廢話不說了,現在發在部落格上,以紀念我在學校的日子吧。

先上
windows 7 版的:


ubuntu 10.04版的


然後,上軟體
windows7版,32位,歡迎大家使用(沒有安裝QT也可以運行)
http://download.csdn.net/source/3198457

最後,上代碼
http://download.csdn.net/source/3198961



最後的最後,說廢話,呵呵
一:學習QT也有一段時間了,就寫了一個小項目(對我也說也算“大作”了)來練習一下吧。
這個項目,差不多搞了我兩個月。其實也不用這麼久的,但我水平不夠,有些小問題也能把我卡了好幾天。更糟糕的是,我還以這個項目難度太大為借口,而去玩遊戲。所以,兩個月也很快就過去了。幸好,這個程式最終也能運行了。

二:在做這個項目的時候,我走了很多彎路,但也學到了很多東西。畢竟設計一個一萬行的軟體和寫一個一百行的程式是差很遠的(有點水分,因為經過最佳化重構,可以縮短不少代碼)。在此期間,我學了設計模式,然後就想在這個項目上面用一下。。。後來又讀了《Effective C++》,發現我的設計實在太爛了。。。
唉,重構,重構。。。。。。。。。
這個項目差不多被我當成萬能實驗材料了,呵呵。

三:在做這個軟體期間,我在CSDN上發了很多文章,得到了很多朋友的協助,在這裡謝謝你們啦。
現在我把這個軟體開源,大家共同學習,共同進步。
歡迎大家對此(軟體的BUG,代碼的可讀性,架構,最佳化建議等)進行討論
如果你發現了BUG或者有什麼建議的話,歡迎回帖,也可以發送郵件到:aa1080711@163.com

四:注意:
1,這個軟體是用C++(QT)實現的。
2,這個軟體的工作原理是,先將用戶端與伺服器建立長串連,然後進行通訊,不同用戶端之間要通訊時,所有資訊都通過伺服器中轉。
3,運行這個軟體時,先在一台主機上運行server,得到主機的IP地址與連接埠,再運行client,串連以後,註冊,登陸(註冊時先看協助)。
4,server最好在公網(非區域網路)的主機上運行(區域網路也能運行,反正只要讓所有的client能串連上就行了),如果server和client在同一台主機上,那IP地址就寫"127.0.0.1"
5,代碼是跨平台的,但代碼是我在VS2008上編寫的,所以用qt creator編譯client時會出現一堆警告(VS2008上沒有出現警告)。可以還會出現“找不到inputtextedit.h這個檔案”的錯誤(將其改成"inputTextEdit.h"就行了),編譯器自動產生的程式碼都會錯,真神奇。
6,如果是自己編譯代碼的話,請保證client(用戶端)和pictures(檔案夾)處在同一個檔案夾中。
7,軟體中的頭像是直接複製QQ的。

大家就來頂一下吧,畢竟做這個項目也花費了我不少心血啊,呵呵。

PS:我也是第一次做綜合性這麼強的軟體,做得不好,請大家多多見諒.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.