|
盒子资源分类 |
|
|
|
|
UDP 安全传输演示完整源码 |
|
关键字:UDP TCP NAT SafeSendBuff 点对点 安全传输 |
来 自:原创 |
平 台:Win2k/XP/NT,Win2003 |
下载所需:0 火柴 |
深浅度:高级 |
完成时间:2006/6/20 |
发布者:mmzmagic |
发布时间:2006/6/20 |
编辑器:DELPHI7 |
语 种:简体中文 |
分 类:网络 |
下载浏览:10186/26410 |
|
|
|
|
大家都知道UDP比TCP好用发送速度快很多,程序写起来也简单的多,可缺点也同样明显UDP容易丢包,而且不能自动重发也不能自动组包没有数据安全机制,发的包不能超过2K(INDY,NMUDP等控件都是这样)否则就出错。 可很多需求中又需要发送大量数据包并且需要保证速度(如语音和视频通讯或者点对点点播服务。)而且有些重要的数据不允许丢包这个时候就需要安全UDP了。 有朋友可能会说那你干嘛不用TCP?TCP不就是安全的UDP吗? 主要因为 1、TCP无法很好的穿透NAT,来进行点对点通讯。 2、通讯过程中需要某些重要的命令不丢失,TCP需要首先建立连接,每个包都需要确认。这样发送速度会慢不少。 所以偶需要一个安全的UDP可以发送任意大小包,可以保证某些重要的包不会丢失,并且可以轻松穿透NAT来进行点对点通讯。 网上四处寻找未果SO自己动手写了一个。具有以下功能(本类是站在前人的肩膀上实现,基类为偶稍加修改过的NMUDP) 1、自动分包组包 2、支持一次性发送任意大小的包 3、支持安全控制 4、根据丢包率和网速度动态控制发包速度(因时间的局限此功能未很好的实现) 5、对于用户透明的接口(开发人员不用关心实现细节可以和使用其它UDP控件一样简单的使用本类)
接口的简单说明,使用本类很简单 当想要发送大数据包或者具有安全控制的数据包就使用方法 SafeSendBuff 即可:) 当然接收方必须使用本类(即服务端。因为偶需要自动处理分包、组包、重发等细节) 给事件成员OnDataCase付值即可该事件是接收到数据时触发
具体使用方法请见演示程序 DemoClient.exe 为接收窗体 DemoServer.exe 为发送窗体 发送202575字节的东东需要3秒时间:( 听同事说C++有不少此方面的代码,不过我找了DELPHI方面的没找到。 现在安全控制时的发送速度比较慢因为智能根据网络流量调整的功能还没时间去弄。 安全UDP的用途十分广泛,希望对此有兴趣的朋友能和偶一起完善它。 偶准备把它用于点对点通讯程序上:) http://www.2ccc.com/article.asp?articleid=3154
最后支持DELPHI,支持盒子,支持开源,共同提高、共同进步! 本代码为免费代码,您可以随意的修改和传播它:)只是希望在改进它后给偶一份改进后的代码。
开发者 马敏钊 QQ 22900104 MAIL: mmzmagic@sina.com |
|
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们! |
相关文章 |
|
|
|
相关评论 |
|
共有评论26条
当前显示最后6条评论
|
fenzun |
2006/7/17 11:38:15 |
楼主,能不能写一个文件传输的,我改进了一下,文件以流的方式传过去,但是文件名怎么传过去了 |
twofinger |
2006/12/28 9:13:45 |
感谢搂住 |
myso |
2007/12/30 15:28:38 |
非常好的东西,人家能发布已经不错拉,,不要要求那么多,,自己看,自己学习. |
mmzmagic |
2009/12/23 23:12:58 |
偶建了一个QQ群,号码:15637473 希望能建立一个高质量的编程艺术交流的平台,共同进步共同提高。 |
mmzmagic |
2009/12/23 23:13:54 |
偶建了一个QQ群,号码:15637473 希望能建立一个高质量的编程艺术交流的平台,共同进步共同提高。 |
mmzmagic |
2009/12/23 23:41:25 |
偶建了一个QQ群,号码:15637473 希望能建立一个高质量的编程艺术交流的平台,共同进步共同提高。 |
我要发表评论 |
查看全部评论 |
|
|
|