zhuweisky

君子之行,静以修身,俭以养德。非淡泊无以明志,非宁静无以致远。
ESFramework,基于.NET的通信框架。DataRabbit,轻量的数据访问框架。DCFramework,基于.NET的动态分布式计算框架。sky.zhuwei@163.com

统计

留言簿

积分与排名

好友博客

阅读排行榜

评论排行榜

AgileIM 源码公开

    前文已经提到AgileIM只是用于我的通信框架ESFramework测试的客户端,AgileIM 如今已经支持的主要功能:
(1)文字聊天
(2)文件传输
(3)视频/音频聊天
(4)基于Udp的NAT/NAPT 穿透

    IM类型的软件所需要的框架的能力大致也在这里了,现在把AgileIM的源码开放,希望能对后来者有些许帮助,当然,服务端通信框架的源码时不开放的。即使如此,你也可以从AgileIM中学到:
(1)如何与服务器进行通信、客户端基于Tcp的通信框架的特点
(2)如何组织通信消息/协议
(3)如何进行视频/音频捕捉
(4)多线程
(5)如何使用ESFramework框架的ESFramework.Network.Tcp.Passive空间

    AgileIM基于ESFramework构建,使用VS2005开发,代码并不是很多(因为很多能力已经在ESFramework框架中实现),组件装配/IOC使用了Spring框架,数据访问层使用了XCodeFactory
    测试登录帐号: 100000 ,密码: 111111
                             110000 ,密码: 111111
                             111000 ,密码: 111111

    我相信,每个人都可以开发自己的QQ和MSN!

   点击这里下载AgileIM源码。

posted on 2006-03-06 10:04 zhuweisky 阅读(8421) 评论(43)  编辑 收藏 网摘 所属分类: C#专栏

评论

#1楼 2006-03-06 10:12 雁儿飞飞      

不错
只可惜是2.0的
没装框架,运行不了
以后好好研究研究
  回复  引用  查看    

#2楼 2006-03-06 10:31 Shooper .NET      

谢谢分享,学习   回复  引用  查看    

#3楼 2006-03-06 11:35 小黄叶[未注册用户]

人的思想道德修养,人的素质与人的文化是不能成比例的。   回复  引用    

#4楼 2006-03-06 11:55 lrq      

下载不了,兄弟   回复  引用  查看    

#5楼 2006-03-06 12:38 天生这样      

有点郁闷的是只提供了客户端的代码,其它一些框架代码都没有,只有DLL   回复  引用  查看    

#6楼 2006-03-06 13:31 lovebanyi[未注册用户]

正要学习视频和音频的.这样的有代码的话就好了..   回复  引用    

#7楼 2006-03-06 16:50 Beginor      

音频和视频捕获在CodeProject上看过(DShowNet以及那个Captrue类),而且是开源的,需要的朋友可以去www.codeproject.com上找。

顺便鄙视一下楼主!:)开源的东西,应该继续开源流传下去,不要占为己有。
  回复  引用  查看    

#8楼[楼主] 2006-03-06 17:13 zhuweisky      

@Beginor:
呵呵,你说的严重了,我并没有把 “DShowNet以及那个Captrue类”据为己有,只是EnterpriseServerBase.dll 这个是我自己开发的,源码不公开。
AgileIM中 告诉了后来者如何使用Captrue类。
  回复  引用  查看    

#9楼 2006-03-06 18:58 淹不死的鱼asp.net开发专栏      

http://www.718.com.cn">http://www.718.com.cn
轻松构建.net应用,
Asp.net空间只需155元/年。
磁盘空间: 50M
MS SQL数据库空间: 20M
支持: ASP.net、ASP
FTP管理
流量无限制
P4 2.0G以上CPU 2G内存
硬盘2*73G 操作系统: Windows2003
千兆光纤接入,百兆独享宽带
7×24小时全网监控系统,千兆防火墙系统、防攻击设备
网通/电信

查看更多虚拟主机请点击http://www.718.com.cn">http://www.718.com.cn有更多款式配置适合你的需求。
  回复  引用  查看    

#10楼 2006-03-06 19:02 雁儿飞飞      

@zhuweisky

非常感谢您的开源精神
但是遗憾的是您的EnterpriseServerBase.dll 代码不公开

我也看拉这个dll确实写的不容易
针对EnterpriseServerBase.dll 就反编译c#源代码一份:
下载地址:
http://www.cnblogs.com/Files/overred/EnterpriseServerBase_Source.rar">http://www.cnblogs.com/Files/overred/EnterpriseServerBase_Source.rar

郑重说明:

经过IL成高级语言(C#)多多少少会与原代码有区别,所以这并不算什么违法行为,同时也是为拉广大朋友的方便!但是层次结构已经分布到各个文件夹和.cs里,起码比用Reflector要舒服点。(在1下完成,并未做任何测试,错误不可避免,想要正确的还是等楼主开源吧)

^_^
开源吧,上帝
  回复  引用  查看    

#11楼 2006-03-07 13:57 smalldust      

呵呵,对作者最后那句话不大理解:人人都能开发自己的QQ和MSN?
不知道人人都开发出自己的QQ和MSN来干嘛用啊?那不正与IM的意义相反吗?

另外,恕我直言,开发一个IM Client简直是容易至极(或者换句话说,没有什么技术含量),IM的技术精粹,是在服务器端。举个例子,服务器的可扩展性(一个IM Server要支持成千上万的并发连接,但是这一点恐怕就不得不用IOCP等技术吧?)此外,从数据库的角度来看,一个高效的IM Server还要使用分布式的数据库,并且对于冗余和备份的规划要做到万无一失。从某种角度来说,IM Server正是对上层架构技术和下层代码技术要求都非常高的一个开发项目。

因此,如果作者真正开发出了一个实用的IM Server,那我相信其源代码是非常值得一看的。如果作者开发的只是一个Asynchorous Socket的IM Server,最多支持2000多个并发连接的Server,那其实并没有什么意义。

对了,我的毕业设计就是IM服务器与客户端的实现。
  回复  引用  查看    

#12楼 2006-03-07 14:06 smalldust      

刚才说的并没有藐视作者辛勤劳动的意思。

的确作为IM Client其实现原理很简单,但是就连一个“计算器”程序,都可以做得很复杂。我没有下载作者的源代码,不知道他具体是否也花了很多心思,做得很精细。

我所说的“简单”,是作者举出的他所用到的技术。举例来说“(4)基于Udp的NAT/NAPT 穿透”,开一个UPnP隧道在.Net中只需要下面两句(当然不包括任何错误处理)

UPnPNAT uPnPNat = new UPnPNAT();
uPnPNat.StaticPortMappingCollection.Add(intExternalPort, strProtocol, intInternalPort, strLocalIP, true, strDescription);

当然,作者设计并实现了其IM系统特有的协议栈等等,这些都是比开UPnP隧道了不起的多的事情。因此我觉得大家学习的时候,主要不是学习怎么控制摄像头、怎么开UPnP,而是作者的架构设计、协议栈设计等等。
  回复  引用  查看    

#13楼[楼主] 2006-03-07 15:19 zhuweisky      

非常感谢这么多人的关注!
其实 服务端框架的核心内容已经在我的前面的文章中浮出水面,特别是这两篇:
.NET平台下可复用的Tcp通信层实现(http://zhuweisky.cnblogs.com/archive/2006/01/04/310814.html">http://zhuweisky.cnblogs.com/archive/2006/01/04/310814.html
.NET平台下可复用的Tcp通信层实现(续) (http://zhuweisky.cnblogs.com/archive/2006/01/05/311364.html">http://zhuweisky.cnblogs.com/archive/2006/01/05/311364.html

开放AgileIM的源码,只是想给后来者起个抛砖引玉的作用,对初学者有些许指导就是我所有的目的。
呵呵,我写blog并没有抱着“文不惊人死不休”的态度,我也没这个能力:)

我说“人人都能开发自己的QQ和MSN”,意思是说,QQ和MSN这样的软件并不神秘,所有有开发IM愿望的人通过些许努力皆可达成。当然,正如smalldust所说,IM的精髓在其服务器端,要做一个专业的IM软件,确实有许多事情要做。
在熟悉了NAT的原理之后,实现NAT非常简单,但是对于一个没有接触过NAT概念的人,恐怕就不是那么容易了。

踏踏实实做点事、少点狂妄、少点埋怨、多点知足,这是我生活的体会!


  回复  引用  查看    

#14楼 2006-03-10 09:01 ζ浮云¢惊龙      

D. @_@ :-)   回复  引用  查看    

#15楼 2006-03-10 10:16 露雨城市.NET2.0和Sql Server 2005开发研究      

我想问问作者,客户端和服务器端的命令行是如何传递的呢,谢谢。   回复  引用  查看    

#16楼 2006-03-10 14:45 zhuweisky1[未注册用户]

@露雨城市.NET2.0和Sql Server 2005开发研究
命令行 只是一类客户端与服务器通信的特殊的消息,它与普通消息的结构一样
  回复  引用    

#17楼 2006-03-16 22:03 A.Z      

谢谢   回复  引用  查看    

#18楼 2006-03-25 15:51 kudoo[未注册用户]

请问, 为什么解压后就一个文件,而且还识别不了.   回复  引用    

#19楼 2006-03-25 16:09 kudoo[未注册用户]

楼主,能讲讲File Transfer吗?
www.jabber.org上讲的太简单和模糊了.
  回复  引用    

#20楼 2006-05-19 10:48 sokoo8[未注册用户]

为什么AS用的是VS2003,AgileIM则用VS2005,有没有类似的VS2003的客户端啊?期待发布一个   回复  引用    

#21楼 2006-06-08 21:56 hhcvod[未注册用户]

有VB的UDP穿透源码就好了
UPnpNat在VB里我也不能运行
老大们有吗,我的QQ是:87680004
  回复  引用    

#22楼 2006-06-08 22:00 hhcvod[未注册用户]

老大们,能教我怎么在VB使用UpnpNat控件吗,我好郁闷啊,我的QQ是:87680004   回复  引用    

#23楼 2006-07-07 09:16 西琪兰特[未注册用户]

EnterpriseServerBase.dll 到底要从哪儿下载啊? 实在是找不到了 可以发到我的邮箱里吗?wyphw@qq.com 谢先!   回复  引用    

#24楼 2006-08-10 13:44 永远爱你的人[未注册用户]

是呀我怎么敢找不到EnterpriseServerBase.dll 呀。它在哪里放呀。要不你也发给我一个。我的邮箱:
txi2008@163.com
  回复  引用    

#25楼 2006-09-06 08:53 zb[匿名][未注册用户]

我想问一下,客户端,具体如何实现,能有这方面的文档学习学习吗?
你们都说简单,。
我要学习什么,才能做得到。?
  回复  引用    

#26楼 2006-09-13 14:54 丹心猪      

晕哇,找了好久,没找到
AxTnerop.RealAudioObjects
EnterpriseServerBase
Interop.RealAudioObjects
这三个东西不知道在哪里
麻烦楼主指明一下,谢谢了
  回复  引用  查看    

#27楼 2006-09-13 15:55 丹心猪      

@丹心猪
已经可以了,但是用上面的密码进不去,总是提示“用户不存在,请重新输入”
  回复  引用  查看    

#28楼 2006-09-14 14:52 丹心猪[匿名][未注册用户]

终于可以了   回复  引用    

#29楼 2006-09-21 15:39 小生      

@丹心猪
在哪里可以找到這三個東東呀????
  回复  引用  查看    

#30楼 2006-09-21 15:39 小生      

@丹心猪
在哪里可以找到這三個東東呀????
  回复  引用  查看    

#31楼 2006-11-06 16:47 学习.net[匿名][未注册用户]

AxTnerop.RealAudioObjects
EnterpriseServerBase
Interop.RealAudioObjects
这3个文件在那啊?谢谢
  回复  引用    

#32楼 2006-11-06 21:31 zxar9889[未注册用户]

为什么源码运行出错?
我遇到和前位同样的问题!
  回复  引用    

#33楼 2006-11-19 09:44 Zhu[匿名][未注册用户]

强烈鄙视楼主,这个东西只有一部分,服务端部分一点没有
不想给别人看就不要发布,发布了又不给别人看
强烈鄙视!!!!
  回复  引用    

#34楼[楼主] 2006-11-19 17:20 zhuweisky      

@Zhu[匿名] :
ESFramework 既是服务端的源码核心,研究ESFramework就可以了
  回复  引用  查看    

#35楼 2006-11-20 13:35 Zhu[匿名][未注册用户]

数据库部分呢?   回复  引用    

#36楼 2006-12-15 00:44 毕业生[匿名][未注册用户]

我现在的毕业设计是"IM客户端的设计及优化".楼主能给些资料参考吗?

我的邮箱:ccseesee@21cn.com
  回复  引用    

#37楼 2006-12-24 11:15 brasilman

EnterpriseServerBase.dll
hzgame#hotmail.com麻烦了
  回复  引用    

#38楼 2007-02-05 18:49 QiFine[未注册用户]

楼主,发一份完整的代码给我吧,期待中。。。
不要折磨我们了,老大
qifine@gmail.com
等待中ing。。。。。
  回复  引用    

#39楼 2007-03-23 13:53 ronglj[未注册用户]

等待中ing。。。。。   回复  引用    

#40楼 2007-04-15 18:33 candyzheng[未注册用户]

楼主,既然开源的话,我想求得一份完整的源代码,苦寻了好久,总算发现了一个可以开源的代码,但是不完整,希望楼主说的每个人都可以开发自己的qq和msn,能圆我一个梦,如果是有条件的开源,也无妨,点对点视频的时代就将过去,希望楼主与本人联系,谢谢,msn:yb_yiduo@hotmail.com,静候佳音!!   回复  引用    

#41楼 2007-05-13 12:24 刚在研究IM程序 找到楼主的BLOG 但原码少3个DLL[未注册用户]

刚在研究IM程序 找到楼主的BLOG 但原码少3个DLL
希望提供 :firedlove@163.com
  回复  引用    

#42楼 2007-05-24 21:25 花上飞[未注册用户]

可以编译通过,把EnterpriseServerBase.dll去掉,改为ESFramework.dll
另外两个dll可以去掉
  回复  引用    

#43楼 2008-04-09 00:03 蓝奇高级验证码识别引擎QQ:631753663[未注册用户]

出售蓝奇高级验证码识别引擎,可准确识别新浪动网淘宝CSDN等多种复杂验证码。

输出为一个标准DLL,可供VB,VC,Delphi,C#.NET,VB.NET,模拟精灵,按键精灵等多平台调用,调用方法简单,几行代码即可完成。独具特色的边缘检测字符分离、旋转倾斜纠正和通用字符匹配算法(无论字体和大小), 使得该引擎对于像新浪、动网、淘宝、CSDN等多种验证码均有不错的识别率,是一款效果较为理想的验证码识别引擎。附详细的调用实例和代码注释等相关技术文档。

官方网站 - http://***/yzm_advocr
识别效果怎么样一试就知道 - DEMO下载 http://***/yzm_advocr/advocr.rar
  回复  引用    




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 343687




相关文章:

相关链接: