自从推出了SanNiuSignal.DLL,用户反映仍是满好的;为了更好的服务于你们,我已经修复了不少BUG,同时把这个DLL开源;下面就先来介绍下java
使用这个DLL开发出的简单的通讯系统;如图:服务器
想使用哪一个模块就启动哪一个模块,能够和客户造成通讯; 百度网盘下载地址:http://pan.baidu.com/s/1i346GML 里面包含了SanNiuSignal.DLL的源码以及它的一个使用例子;有不会的请加QQ群:426414437交流,之后更新网络
的DLL就在群里发布了.......下面是关于SanNiuSignal.DLL的源码详细介绍异步
SanNiuSignal是一个基于异步socket的彻底免费DLL;它里面封装了Client,Server以及UDP;有了这个DLL;用户不用去关心心跳;粘包
;组包;发送文件等繁琐的事情;你们只要简单的几步就能实现强大的通讯系统;能帮助到你们是本人以为最幸福的事情,也但愿你们
在用的过程当中找出DLL中不足的地方;好改正;此DLL的苹果版和java版正在努力开发中......socket
下面为你们介绍一下 如何使用SanNiuSignal.调试
1 ) :TCPServer服务器,经过静态方法TxStart.startServer注册成功服务器ITxServer;而后经过ITxServer设置好各类属性;最后启动
ITxServer.StartEngine();就能够了;具体能够到demo里去看;相对来讲比较简单,下面来讲一下须要注意的地方
一:ITxServer.BufferSize,就是接收数据缓冲区大小;默认为1kb,不要小于50字节,并且要和客户端设置成同样;不然会出现不可预知
的错误;这个缓冲区的大小,不会影响你每次发送数据的大小;大小只能提升你的发送速度
二:ITxServer.sendMessage 发送前先判断此IPEndPoint客户端是否在线;由于若是不在线等状况发生;此方法没有任何消息产生;如
果发送成功而且对方已经收到;会触发发送成功的事件;
三:用户能够经过ITxServer.FileLog记录服务器的运行信息;blog
2 ) :TCPClient客户端,经过静态方法TxStart.startClient(服务器地址或网址, 服务器端口号)注册成功客户端ITxClient;而后经过
ITxClient设置好各类属性;最后启动ITxClient.StartEngine();跟服务器启动差很少;具体能够到demo里去看;客户端要注意的一些地
方
一:若是非服务器强制关闭客户端的状况下,掉线的话,客户端默认是要重连的;他的原理是这样的,每10秒重连一次;重连
ITxClient.ReconnectMax次若是失败;会自动关闭客户端引擎;在重连的过程当中;你能够改变客户端链接服务器的IP地址和端口号;但
若是当断开的时候不想重连;能够设置ITxClient.ReconnectMax=0;
二:登陆篇,在引擎启动以前,用户能够设置ITxClient.OutTime来设置超时时间;默认为10秒,也就是说10秒以内确定会有一个登陆结果
;登陆成功或登陆失败。有了登陆结果会触发登陆结果事件;继承
3 ) :Udp引擎,经过静态方法TxStart.startUdp()注册成功UDP--IUdpTx;而后经过IUdpTx设置好各类属性;最后启动
IUdpTx.StartEngine();若是在启动以前要绑定端口号,请在这里设置IUdpTx.Port;不然是随机使用本地端口;不管是UDP仍是服务器和
客户端;它们的不少方法和属性以及事件都是相同的,由于他们都继承了通讯系统的基接口ITxBase;下面是UDP引擎要注意的地方
一:UDP的优点在于速度快但不太可靠;因此有些属性不能设置的太过,如IUdpTx.BufferSize;默认为1KB,若是在广域网上发送信息,
缓冲区大小不要超过默认值;不然数据会丢失,若是一次性数据大于1KB;也没事,系统会自动分包发送;不太会丢包。接口
4 ) :文件发送系统,经过静态方法FileStart.StartFileSend(IFileSendMust)生成一个文件发送系统IFileSend;其中IFileSendMust是
必须实现的一个接口;具体参照demo;而后经过IFileSend设置好各类属性;发送仍是要经过前面的三个引擎系统发送的;如
ITxClient.SendFile 这时会返回一个文件标签,是一个整数;IFileSend能够经过操做这个标签来操做这个正在发送的文件;接收文件
系统也同样;也是经过文件标签来操做;文件续传也是同样,也要经过前面的三个通讯引擎系统进行续传;由于文件系统不能决定用户
经过哪一个通讯系统进行续传的;例如IUdpTx.ContinueFile进行续传;你们也能够试一下 掉线以后从新链接也能够续传;事件
5 ) :文件接收系统,经过静态方法FileStart.StartFileReceive(IFileReceiveMust)生成一个文件接收系统IFileReceive;其中
IFileReceiveMust是接收方必须实现的一个接口;具体参照demo;而后经过IFileReceive设置好各类属性;下面来说讲文件系统要注意
的几个要点
一:每一个文件都有一个文件标签,发送系统和接收系统是经过控制这个标签来控制这个文件的;若是是同一个文件传输,标签也同样的;
二:要注意属性BufferSize缓冲区大小,他是表明一次传送的字节数;若是这个文件缓冲区越大,传输速度越快;具体要设置成多少,大
家本身去调试;TCP传输的话通常能够设置成比较大,但UDP的话这个不要超过1KB;因此传输大文件尽可能不要用UDP这种不可靠的东东;
三:当网络等各类缘由中断文件的时候;会触发文件中断事件;文件自动处于暂停发送或接收状态;等待续传;续传的发送方,若是对方
赞成续传;对方将不会触发续传开始的方法;别的你们能够经过demo里去发现;
总结:
其实这个DLL相对来说是比较简单的;你们只要掌握这五个接口;1:ITxServer TCP服务器接口 2:ITxClient TCP客户端接口 3:IUdpTx
UDP接口 4:IFileSend 文件发送方接口 5:IFileReceive 文件接收方接口 前面三个接口是经过TxStart启动;后面二个文件接口
是经过FileStart启动
今天先讲到这里;但愿这个DLL对你们有所帮助;不足之处但愿经过QQ或博客园你们一块儿交流;谢谢
此演示源码下载地址:http://pan.baidu.com/s/1i346GML 里面包括了SanNiuSignal.DLL