阿不

不抛弃,不放弃

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  162 随笔 :: 0 文章 :: 2175 评论 :: 74 引用

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

阿不 http://hjf1223.cnblogs.com
Tag标签: lumaqq.net
posted on 2008-03-11 19:31 阿不 阅读(10986) 评论(166)  编辑 收藏 网摘 所属分类: OpenSourceLumaQQ.NET

评论

#1楼  2008-03-11 19:44 Q.Lee.lulu      
支持,坚持下去!!
  回复  引用  查看    

呵呵,您有什么需要吗?
  回复  引用    

#3楼 [楼主] 2008-03-11 19:51 阿不      
@Q.Lee.lulu
谢谢,会的。
  回复  引用  查看    

#4楼 [楼主] 2008-03-11 19:52 阿不      
@很想支持你一下
没有什么需要啊。做出来能方便大家就是最大的满足了。
  回复  引用  查看    

#5楼  2008-03-11 19:53 阿布      
纯支持一下
  回复  引用  查看    

#6楼 [楼主] 2008-03-11 19:55 阿不      
@阿布
overred也是基于LumaQQ的实现的。有一些相似的地方吧,但是设计上还是有很大不同的。
  回复  引用  查看    

#7楼  2008-03-11 19:58 micYng      
大概看了下代码
/svn/trunk/src/QQ.NET/Net/Sockets/SocketConnection.cs

不知道这个类里ConnectionPolicy成员用来干嘛的,我觉得底层的通讯类就不应该参杂其它的外界对象(也可能是我没看完代码吧 :) )
  回复  引用  查看    

#8楼  2008-03-11 20:00 MMMMMMM [未注册用户]
支持啊,太厉害了
  回复  引用    

#9楼  2008-03-11 20:03 重典      
支持楼主.
  回复  引用  查看    

#10楼  2008-03-11 20:07 lbq1221119      
cool
希望继续坚持下去,写一个qq.net
  回复  引用  查看    

#11楼  2008-03-11 20:07 TerryLee      
这个一定要支持一下,呵呵:)
  回复  引用  查看    

博主是不是专门申请了一个QQ号做测试了..
  回复  引用    

#13楼 [楼主] 2008-03-11 20:19 阿不      
@ micYng
这个类是有特殊用途的,就是用它把网络层与QQ功能部分的代码隔离开的。
  回复  引用  查看    

#14楼 [楼主] 2008-03-11 20:20 阿不      
@MMMMMMM
@重典
@lbq1221119
@TerryLee
谢谢支持,当然会坚持下去啦
  回复  引用  查看    

#15楼 [楼主] 2008-03-11 20:21 阿不      
@随风飘扬
不止申请了一个,申请了好几个呢,反正号码也不要钱是吧.:)`
  回复  引用  查看    

#16楼  2008-03-11 20:37 Jinx [未注册用户]
不错不错,支持一下!!!
  回复  引用    

#17楼  2008-03-11 20:37 dudu      
强烈支持!
  回复  引用  查看    

#18楼 [楼主] 2008-03-11 20:43 阿不      
@Jinx
@dudu
谢谢支持
  回复  引用  查看    

#19楼  2008-03-11 20:59 Zhuang miao      
这东西很NB啊
  回复  引用  查看    

#20楼  2008-03-11 21:05 马可香蕉      
支持LZ,好想法
  回复  引用  查看    

#21楼  2008-03-11 21:21 随风逝去      
期待早日bz开发完成
  回复  引用  查看    

#22楼  2008-03-11 21:22 airwolf2026      
弱弱的问?QQ协议的处理?
  回复  引用  查看    

#23楼  2008-03-11 21:50 Anytao      
支持,不管是Luma.QQ还是QQ.NET,这种一股脑探索的精神才是值得赞叹的地方。
  回复  引用  查看    

#24楼  2008-03-11 22:05 勇仔1 [未注册用户]
关注。感谢LZ
  回复  引用    

#25楼  2008-03-11 22:07 深蓝      
好样的。谢谢楼主无私奉献的精神。
  回复  引用  查看    

能在博客中加入同步源码包就好了
  回复  引用    

#27楼  2008-03-11 22:25 overred      
不错啊。。。。
支持一把。。。
我还有个更简洁的版本。。。。
如果时间宽裕的话研究下QQ2009协议
呵呵
  回复  引用  查看    

#28楼  2008-03-11 22:36 没剑      
很强大很强大,有空也下下来研究一下,感谢分享
  回复  引用  查看    

#29楼  2008-03-11 22:40 xiaopanp [未注册用户]
支持,能 提供一下你的联系方式吗?
  回复  引用    

#30楼  2008-03-11 22:53 簡簡單單..      
^ō^ 继续关注...
  回复  引用  查看    

#31楼  2008-03-11 23:40 夜星海 [未注册用户]
项一下,可惜是用的VS2008,估计大多数人现在还是安装的VS2005
  回复  引用    

#32楼  2008-03-11 23:54 被偷De贼      
强烈支持~~~

  回复  引用  查看    

#33楼  2008-03-12 01:00 彼一时      
严重支持!!!!
  回复  引用  查看    

#34楼  2008-03-12 06:50 菌哥      
支持阿不!
  回复  引用  查看    

#35楼  2008-03-12 07:26 生鱼片      
支持下
  回复  引用  查看    

#36楼 [楼主] 2008-03-12 08:31 阿不      
@Zhuang miao
还好,已经有人做了很多其它平台的版本了,就.NET平台找不到。

@马可香蕉
谢谢,支持

@随风逝去
开发完成是一个度,看到时候需要功能完美到什么程度吧。

@airwolf2026
是的,QQ协议处理。

@ Anytao
谢谢夸奖!呵呵。

@勇仔1
不用。

@ 深蓝
呵呵

@zb_zbzb@163.com
等到一定程度后会发布程序集。

@overred
先完成这个再考虑其它版本的。

@没剑
还请多提意见。

@xiaopanp
你可以给我留言,我们在邮件里沟通。

@簡簡單單..
谢谢关注。

@夜星海
用Vs 2008主要是方便写代码,特别是自动属性。里面很多属性的说,一个一个的打出来还是很不方便的,不过运行时是基于 .NET 2.0的。

@被偷De贼
谢谢。

@菌哥
谢谢。

@生鱼片
谢谢
  回复  引用  查看    

#37楼  2008-03-12 08:52 大石头      
如果你把这个签入CodePlex,我倒是很愿意去研究。

因为我只会用vss和TFC,svn怎么和vs2008配合使用?
  回复  引用  查看    

#38楼 [楼主] 2008-03-12 08:54 阿不      
@大石头
在CodePlex里面有建项目了,但是没有签入代码。
  回复  引用  查看    

#39楼  2008-03-12 09:10 ASK [未注册用户]
问一下阿不叫什么名字呀?感觉跟我经理名字一样,不会是经理吧???
  回复  引用    

#40楼  2008-03-12 09:16 mythzz      
都2009协议了啊
  回复  引用  查看    

#41楼  2008-03-12 09:17 风之影      
强烈支持~~~
  回复  引用  查看    

#42楼 [楼主] 2008-03-12 09:17 阿不      
@ASK
我不是什么经理,所以肯定不是你的经理,呵呵。
  回复  引用  查看    

#43楼  2008-03-12 09:17 Clark Zheng      
还不错,支持一下
  回复  引用  查看    

#44楼 [楼主] 2008-03-12 09:18 阿不      
@mythzz
没有,只是有人说要去分析2009协议。这边使用的是2005的协议。
  回复  引用  查看    

#45楼 [楼主] 2008-03-12 09:18 阿不      
@mythzz
谢谢。
  回复  引用  查看    

#46楼 [楼主] 2008-03-12 09:18 阿不      
@Clark Zheng
谢谢。

  回复  引用  查看    

#47楼  2008-03-12 09:27 Midapex Village      
支持。。。
  回复  引用  查看    

#48楼  2008-03-12 09:28 王琳      
orichisonic,支持楼主你,你做了我一直都想做的事情
  回复  引用  查看    

#49楼  2008-03-12 09:39 Anders Cui      
支持!NB
  回复  引用  查看    

#50楼  2008-03-12 09:55 XuQ      
正在学习socket,学习了
  回复  引用  查看    

再来顶一下,昨晚我拿了源码看了一下。
确实不错。
代码里写了详细的注释。

  回复  引用    

#52楼 [楼主] 2008-03-12 10:08 阿不      
@ Midapex Village
@王琳
@ Anders Cui
@XuQ
谢谢支持。
  回复  引用  查看    

#53楼 [楼主] 2008-03-12 10:08 阿不      
@很想支持你一下
里面的很多注释还是要感谢 Luma,很多都是从他那边拷贝过来。
  回复  引用  查看    

#54楼  2008-03-12 11:46 look look [未注册用户]
不错
  回复  引用    

#55楼  2008-03-12 13:24 oldrev [未注册用户]
great works!
建议改个名字,省得某些小心眼的大公司找麻烦。
  回复  引用    

#56楼  2008-03-12 13:26 oldrev [未注册用户]
还有,用 Mono和GTK#开发一个 Linux下的客户端的价值远胜于 WinForm
  回复  引用    

#57楼 [楼主] 2008-03-12 13:31 阿不      
@oldrev
我的名字容易惹麻烦?
  回复  引用  查看    

#58楼  2008-03-12 15:24 guozili      
不知道用Silverlight调用LumaQQ的Socket接口做嵌入网页的qq如何?
  回复  引用  查看    

小心啊,QQ是不开放协议的,当心被腾讯告了,像珊瑚虫那样子
  回复  引用    

#60楼  2008-03-12 15:50 scotoma      
太帅的了哦.

用上了2008的了...........阿不我爱你呵呵....最近对机器人还是非常的感兴趣.
谢谢谢谢.
  回复  引用  查看    

#61楼 [楼主] 2008-03-12 15:57 阿不      
--引用--------------------------------------------------
williamnet_li: 小心啊,QQ是不开放协议的,当心被腾讯告了,像珊瑚虫那样子
--------------------------------------------------------
看了这段,我才明白@oldrev 说的是什么意思,是不是让我把QQ.NET改成其它的名字?
  回复  引用  查看    

#62楼 [楼主] 2008-03-12 15:58 阿不      
@williamnet_li
会不会有法律问题我确实也拿不准喔,不过看LumaQQ一直都没什么问题,应该是没问题的吧.不知道哪位的法律知识比较了解的,出来提个意见.
  回复  引用  查看    

#63楼 [楼主] 2008-03-12 15:59 阿不      
@guozili
那样的做法不好.
直接用户sliverligth调用装有QQ的webservice,那样太好.
  回复  引用  查看    

#64楼 [楼主] 2008-03-12 16:00 阿不      
@scotoma
如果你是女的,那我可以考虑.如果是男的,那就...虽然我还没有女朋友,:)
  回复  引用  查看    

#65楼  2008-03-12 16:00 阿鸟      
这非常好! 非常好
  回复  引用  查看    

#66楼  2008-03-12 16:04 junoon [未注册用户]
@阿不
lZ这个项目怎么用SVN下啊。。。我没用过SVN,我已经用SVN连接上了,但是要帐号密码。。。
  回复  引用    

#67楼  2008-03-12 16:10 junoon [未注册用户]
已经获取最新的,谢谢楼主贡献,研究中了
  回复  引用    

#68楼  2008-03-12 16:24 留恋星空      
mark
  回复  引用  查看    

#69楼  2008-03-12 16:39 Such Cloud      
支持支持!!
  回复  引用  查看    

#70楼  2008-03-12 16:40 Such Cloud      
本来还想下的呢 可是没有装2008
  回复  引用  查看    

#71楼  2008-03-12 16:54 joyjjjz      
先做个记号,谢谢楼主分享
  回复  引用  查看    

#72楼  2008-03-12 17:28 Howard Queen      
又好又强大!
  回复  引用  查看    

#73楼  2008-03-12 17:58 灵动生活      
不错 支持........
  回复  引用  查看    

#74楼  2008-03-12 19:37 oldrev [未注册用户]
QQ.Net很有可能引起麻烦,就像 Gaim 被迫改名 pidgin 一样。楼主可以考虑改个比QQ.net更好听的名字嘛。


楼主可以参考一下 Galaxium,Galaxium 是用 Mono 实现的多协议及时通讯工具,楼主的 QQ.NET 可以考虑成为其一个插件。

http://linuxtoy.org/archives/galaxium.html
  回复  引用    

#75楼  2008-03-13 07:21 jillzhang      
支持楼主,不过最好小心为妙
珊瑚虫现在都被搞了
不过做技术研究不错
  回复  引用  查看    

#76楼 [楼主] 2008-03-13 09:42 阿不      
@oldrev
我想名称的影响应该不会很大吧?
  回复  引用  查看    

#77楼 [楼主] 2008-03-13 09:44 阿不      
@jillzhang
被你说一直倒是有点担心喔,不过珊瑚虫那个跟我们这样本质上应该是不一样的吧?那个直接修改的QQ软件,而我们这里只是分析协议包。没有去修改他们的软件。

  回复  引用  查看    

强 !
向阿不的钻研精神致敬!
  回复  引用    

#79楼  2008-03-13 21:55 wsliu [未注册用户]
good
3x
  回复  引用    

mlzhengtu@126.com

阿不 有时间发个我 3Q
  回复  引用    

#81楼  2008-03-13 23:04 seakon [未注册用户]
能不能帮个忙把代码打包发给我啊?

seakon@163.com

^_^要知道,我为了你的代码新安装的VS2008哦~大家一起努力
先谢谢你为大家做贡献哈
  回复  引用    

#82楼 [楼主] 2008-03-13 23:06 阿不      
@seakon@163.com
@糖冒鸡屎
已经在另一篇博客中提供下载了。去看看吧。
  回复  引用  查看    

#83楼  2008-03-14 09:22 000 [未注册用户]
可否在VS.Net 2005中用啊?
  回复  引用    

#84楼  2008-03-14 09:24 py [未注册用户]
楼主好强啊,,我们强烈支持你,没有女朋友的事,就交给我们了,你放心的研究吧
  回复  引用    

#85楼 [楼主] 2008-03-14 09:24 阿不      
@000
解决方案不行,程序集可以
  回复  引用  查看    

#86楼 [楼主] 2008-03-14 09:25 阿不      
@py
谢谢,不过不知道可不可信?>(
  回复  引用  查看    

#87楼  2008-03-14 10:03 老流      
向阿不同学学习!!!
  回复  引用  查看    

#88楼  2008-03-14 10:25 西北驴      
不错.这有点意思啊.
  回复  引用  查看    

向阿不学习这种挑战精神!!!
  回复  引用  查看