Posted on 2006-03-06 10:04
zhuweisky 阅读(7675)
评论(43) 编辑 收藏 网摘 所属分类:
C#专栏
前文已经提到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源码。
Feedback
不错
只可惜是2.0的
没装框架,运行不了
以后好好研究研究
人的思想道德修养,人的素质与人的文化是不能成比例的。
有点郁闷的是只提供了客户端的代码,其它一些框架代码都没有,只有DLL
音频和视频捕获在CodeProject上看过(DShowNet以及那个Captrue类),而且是开源的,需要的朋友可以去www.codeproject.com上找。
顺便鄙视一下楼主!:)开源的东西,应该继续开源流传下去,不要占为己有。
@Beginor:
呵呵,你说的严重了,我并没有把 “DShowNet以及那个Captrue类”据为己有,只是EnterpriseServerBase.dll 这个是我自己开发的,源码不公开。
AgileIM中 告诉了后来者如何使用Captrue类。
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有更多款式配置适合你的需求。
@zhuweisky
非常感谢您的开源精神
但是遗憾的是您的EnterpriseServerBase.dll 代码不公开
我也看拉这个dll确实写的不容易
针对EnterpriseServerBase.dll 就反编译c#源代码一份:
下载地址:
http://www.cnblogs.com/Files/overred/EnterpriseServerBase_Source.rar
郑重说明:
经过IL成高级语言(C#)多多少少会与原代码有区别,所以这并不算什么违法行为,同时也是为拉广大朋友的方便!但是层次结构已经分布到各个文件夹和.cs里,起码比用Reflector要舒服点。(在1下完成,并未做任何测试,错误不可避免,想要正确的还是等楼主开源吧)
^_^
开源吧,上帝
呵呵,对作者最后那句话不大理解:人人都能开发自己的QQ和MSN?
不知道人人都开发出自己的QQ和MSN来干嘛用啊?那不正与IM的意义相反吗?
另外,恕我直言,开发一个IM Client简直是容易至极(或者换句话说,没有什么技术含量),IM的技术精粹,是在服务器端。举个例子,服务器的可扩展性(一个IM Server要支持成千上万的并发连接,但是这一点恐怕就不得不用IOCP等技术吧?)此外,从数据库的角度来看,一个高效的IM Server还要使用分布式的数据库,并且对于冗余和备份的规划要做到万无一失。从某种角度来说,IM Server正是对上层架构技术和下层代码技术要求都非常高的一个开发项目。
因此,如果作者真正开发出了一个实用的IM Server,那我相信其源代码是非常值得一看的。如果作者开发的只是一个Asynchorous Socket的IM Server,最多支持2000多个并发连接的Server,那其实并没有什么意义。
对了,我的毕业设计就是IM服务器与客户端的实现。
刚才说的并没有藐视作者辛勤劳动的意思。
的确作为IM Client其实现原理很简单,但是就连一个“计算器”程序,都可以做得很复杂。我没有下载作者的源代码,不知道他具体是否也花了很多心思,做得很精细。
我所说的“简单”,是作者举出的他所用到的技术。举例来说“(4)基于Udp的NAT/NAPT 穿透”,开一个UPnP隧道在.Net中只需要下面两句(当然不包括任何错误处理)
UPnPNAT uPnPNat = new UPnPNAT();
uPnPNat.StaticPortMappingCollection.Add(intExternalPort, strProtocol, intInternalPort, strLocalIP, true, strDescription);
当然,作者设计并实现了其IM系统特有的协议栈等等,这些都是比开UPnP隧道了不起的多的事情。因此我觉得大家学习的时候,主要不是学习怎么控制摄像头、怎么开UPnP,而是作者的架构设计、协议栈设计等等。
非常感谢这么多人的关注!
其实 服务端框架的核心内容已经在我的前面的文章中浮出水面,特别是这两篇:
.NET平台下可复用的Tcp通信层实现(
http://zhuweisky.cnblogs.com/archive/2006/01/04/310814.html)
.NET平台下可复用的Tcp通信层实现(续) (
http://zhuweisky.cnblogs.com/archive/2006/01/05/311364.html)
开放AgileIM的源码,只是想给后来者起个抛砖引玉的作用,对初学者有些许指导就是我所有的目的。
呵呵,我写blog并没有抱着“文不惊人死不休”的态度,我也没这个能力:)
我说“人人都能开发自己的QQ和MSN”,意思是说,QQ和MSN这样的软件并不神秘,所有有开发IM愿望的人通过些许努力皆可达成。当然,正如smalldust所说,IM的精髓在其服务器端,要做一个专业的IM软件,确实有许多事情要做。
在熟悉了NAT的原理之后,实现NAT非常简单,但是对于一个没有接触过NAT概念的人,恐怕就不是那么容易了。
踏踏实实做点事、少点狂妄、少点埋怨、多点知足,这是我生活的体会!
我想问问作者,客户端和服务器端的命令行是如何传递的呢,谢谢。
@露雨城市.NET2.0和Sql Server 2005开发研究
命令行 只是一类客户端与服务器通信的特殊的消息,它与普通消息的结构一样
楼主,能讲讲File Transfer吗?
www.jabber.org上讲的太简单和模糊了.
为什么AS用的是VS2003,AgileIM则用VS2005,有没有类似的VS2003的客户端啊?期待发布一个
有VB的UDP穿透源码就好了
UPnpNat在VB里我也不能运行
老大们有吗,我的QQ是:87680004
老大们,能教我怎么在VB使用UpnpNat控件吗,我好郁闷啊,我的QQ是:87680004
EnterpriseServerBase.dll 到底要从哪儿下载啊? 实在是找不到了 可以发到我的邮箱里吗?wyphw@qq.com 谢先!
是呀我怎么敢找不到EnterpriseServerBase.dll 呀。它在哪里放呀。要不你也发给我一个。我的邮箱:
txi2008@163.com
我想问一下,客户端,具体如何实现,能有这方面的文档学习学习吗?
你们都说简单,。
我要学习什么,才能做得到。?
晕哇,找了好久,没找到
AxTnerop.RealAudioObjects
EnterpriseServerBase
Interop.RealAudioObjects
这三个东西不知道在哪里
麻烦楼主指明一下,谢谢了
@丹心猪
已经可以了,但是用上面的密码进不去,总是提示“用户不存在,请重新输入”
AxTnerop.RealAudioObjects
EnterpriseServerBase
Interop.RealAudioObjects
这3个文件在那啊?谢谢
强烈鄙视楼主,这个东西只有一部分,服务端部分一点没有
不想给别人看就不要发布,发布了又不给别人看
强烈鄙视!!!!
@Zhu[匿名] :
ESFramework 既是服务端的源码核心,研究ESFramework就可以了
我现在的毕业设计是"IM客户端的设计及优化".楼主能给些资料参考吗?
我的邮箱:ccseesee@21cn.com
EnterpriseServerBase.dll
hzgame#hotmail.com麻烦了
楼主,发一份完整的代码给我吧,期待中。。。
不要折磨我们了,老大
qifine@gmail.com
等待中ing。。。。。
楼主,既然开源的话,我想求得一份完整的源代码,苦寻了好久,总算发现了一个可以开源的代码,但是不完整,希望楼主说的每个人都可以开发自己的qq和msn,能圆我一个梦,如果是有条件的开源,也无妨,点对点视频的时代就将过去,希望楼主与本人联系,谢谢,msn:yb_yiduo@hotmail.com,静候佳音!!
刚在研究IM程序 找到楼主的BLOG 但原码少3个DLL
希望提供 :firedlove@163.com
可以编译通过,把EnterpriseServerBase.dll去掉,改为ESFramework.dll
另外两个dll可以去掉
出售蓝奇高级验证码识别引擎,可准确识别新浪动网淘宝CSDN等多种复杂验证码。
输出为一个标准DLL,可供VB,VC,Delphi,C#.NET,VB.NET,模拟精灵,按键精灵等多平台调用,调用方法简单,几行代码即可完成。独具特色的边缘检测字符分离、旋转倾斜纠正和通用字符匹配算法(无论字体和大小), 使得该引擎对于像新浪、动网、淘宝、CSDN等多种验证码均有不错的识别率,是一款效果较为理想的验证码识别引擎。附详细的调用实例和代码注释等相关技术文档。
官方网站 -
http://***/yzm_advocr
识别效果怎么样一试就知道 - DEMO下载
http://***/yzm_advocr/advocr.rar