LumaQQ.NET,基於LumaQQ的.NET開源QQ開發包

版權聲明:該開源開發包,是基於LumaQQ的基於等價移植到.NET平臺下,開發者不直接參與QQ協議的分析工作,移植到.NET平臺純粹是爲了方便廣大.NET開發者學習和研究之用,並且沒有產生任何直接的經濟效益,並且純粹是個人的技術學習研究行爲,與本人所在單位沒有任何關係。此開發包的用戶在使用過程產生的效益和涉及的法律責任與本人沒有直接關係。如果影響到您或您的公司利益,敬請諒解並且與我聯繫,本人會第一時間作出處理。本系列章首發且單發於博客園,由於各種原因不歡迎轉載本系列文章,如果您轉載了該系列文章請自行承擔責任並且轉載完整版本,包括版權聲明。

在一個多月以前,當我一直在找.NET下的開源QQ開發包的時候,我很失望,因爲我找不到這樣的資源。

讓我不得不花一些時間去學習和了解JAVA和Eclipse,因爲在JAVA領域已經有一些QQ開源開發包,而且已經出現很多年了,這讓我不禁羨慕起了JAVA的開發人員,不爲別的,就因爲他們的開源資源比.NET豐富。這時,我想起了NHibernate,iBatis.net,Lucene.net他們都是從JAVA優秀的開源產品等價移植而來的,從知識原創性的角度來說,它們可能還不及它們的原先產品。但對於.NET平臺的開發人員來說,卻給我們帶來了極大的方便。於是,我萌生了把LumaQQ移植到.NET平臺下,並做爲一個開源資源,豐富.NET開源社區的想法。

從一個想法,落實到實踐上並不是一件很容易的事情。在經歷了春節前一段時間的構思後,在春節真正付諸實踐,到現在也將近一個月的時間。在這個月裏,陸續陸續的一行一行代碼的翻譯QQ包對象,前後也花了將近三週的時間。我也是第一次這樣沒頭沒腦的敲代碼,終於體會到其中的艱辛了。不過好在完成了這些包對象的後,其它的事情都比較順利。

因爲之前從來就沒有接觸過Socket開發,只有去CodePlex下載一些例子,並參考了一下DotMSN的實現。並且在DotMSN裏面找到了可以使用代理的Socket對象,這省去了我去了解網絡編程的大量時間。同時我還要感謝LumaQQ的作者Luma設計了一個結構優良的框架代碼,讓我在.NET版本的開發中學習到很多,並且很容易加以於修改。同時他在LumaQQ裏面的大量註釋也讓我避免了走太多的彎路。感謝的話不多話,沒有LumaQQ,也就沒有這個QQ.NET的出現,請把所有的掌聲獻給LumaQQ的作者Luma。

但是,這個開發包並還沒有真正完成。目前只是完成了基本結構和一些最基本的功能。基本結構包括:所有的QQ協議包的定,基本協議包的解析,包達到後的處理,包的發送處理,重發包處理,保持登錄狀態,錯誤處理,網絡處理。完成了這些主要的功能後,接下來就是各種QQ功能的實現,而這些QQ功能基本都只有兩步:發送對應的操作包及接收回應包後的事件處理。目前這些實現的QQ功能包括:登錄,保持連接狀態,收接信息,發送信息,讀取好友列表,讀取在線好友列表。還有更多的功能已經在逐步的加進來,畢竟一個人的業餘時間來做這些事還有點太顧不過來。smile_sad

另外,我並沒有提供一個WinForm程序來演示這個開發包,只是根據開發的進展,寫了一個控制檯程序來測試這些功能是否能正常使用。如果接口使用文檔沒有及時跟上,請自行參考測試程序以及接口註釋。如果有人願意寫WinForm程序來補充示例,非常樂意您的補充。

費話就不多說了,先貼一張圖片預覽一下吧:

qq.net

爲了提高代碼的編寫效率使用了Visual Studio 2008,但是是基於.NET Framework的。編譯後的程序集可以用於.NET 2.0開發。目前還沒有發佈版本,因爲功能會每天都在更新,所以請從SVN中下載最新的代碼體驗吧。smile_regular

PS.慶祝一下火箭隊的19連勝,並期待更長的連勝,並祝願姚明早日康復!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章