阿不

潜水

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  212 随笔 :: 0 文章 :: 3067 评论 :: 75 引用

公告

版权声明:该开源开发包,是基于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连胜,并期待更长的连胜,并祝愿姚明早日康复!

posted on 2008-03-11 19:31 阿不 阅读(...) 评论(...) 编辑 收藏