求可靠多播实现思想(最好有代码),即要求校验多播数据。 多播收发已搞定了,但客户提出必须可靠!因为多播数据的接收顺序可能不是先发先到,数据也不一定正确,数据也可能会丢失有请各位Thinking... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 噢!我没太看懂, 对于一台机器来说, 发的数据包应该是按顺序到的, 以前我用多播传视频数据也没问题啊, 比如 a 发多播数据 给 b ,c , 楼主的意思是, b 收 a 发的多播数据时, 有可以不是a 发的数据包的顺序, 是这个意思吗? To:HanZhu1不是这意思,我想说的是:Server按顺序多播发出的数据A,B,C...,在Client端接收时顺序可能会变成B,A,C...(这种情况可能发生吗?我也没测试过,测试也很难发现,因为它的概率小)。如果这样在Client没有校验就马上处理接收到的数据就会丢失数据。 请问多播你们是如何实现的.我只能在局域网里可以.如果要在internet网上就没法实现!!! 请教! 头几天我也测了一下,多播数据的收发也是只能在局域网中进行!希望是我测错了。不过有一点可以肯定,既然是多播,那肯定是udp连接。udp本来就是不可靠的,发送的多播数据出现乱序或者丢失都是不可避免的。要想可靠那就用tcp,但就不能用多播了。如果想发现多播数据是否乱序可以设置时间戳,按时间戳的大小来比较就可以了。至于出现丢包那就没办法了。 据了解,如果想获得Internet支持,就得Internet商家的支持,要跨网段。 我也做过一个多播通信的软件,多播是使用udp包,所以如果跨网段有可能数据包的先后顺序和发出的是不一致的。如果你确认能够保持顺序一致,那么要验证数据的正确性,可以使用CRC32来验证,而且,要你需要对数据进行编码,这样才能在接收端对收到的数据包进行验证。关于编码的问题,如果你没有经验,那么请自己找资料看下基本的原理,客户如果要求不高,那只要用简单的编码算法就可以了。还有理论上CRC验证是不能保证100正确的,但是实际使用中是能够满足一般要求的。 设置socket 的ttl选项没,如果不设IGMP缺省会把它丢掉, 不能跨网段 You can read the PGM(Pragmatic General Multicast),may be you can get some ideasbut multicast based on UDP,it's…… 数据包举个简单例子:包头|包体包头和包体的格式根据需要自己定义(可以参考一些网络协议的数据包定义方式)可以在包体(最后)中加入4个字节crc32校验码客户端收到时进行crc验证crc验证的具体原理可以在网上找到crc验证的源代码网上到处有还不明白就去找资料吧 这个是不能懒惰的 时如何取消MFC ListCtrl非数据行的网格线? vc 添加按钮并获取按钮的id号 怎样把一个CMemFile复制到另一个CMemFile中去?急(在线等待) 有没有人能给个求逆矩阵的程序?300分 有谁看了本月的VC排行榜??我怎么看不到? 如何从文件得到控件的CLSID值? ADO执行SQL语句,日期时间如何用文本表达 请问程序在什么情况下会导致系统崩溃?急!急!急! 为什么被共享的页面在各个进程表中的页号必须相同?(页式管理/请求页式管理) 控制台程序怎么编写成com组件(.exe),并可以远程调用,急!! 马维达最新网络大作下载..出版社都还没出哦 使用VC6.0编译有问题
也没问题啊, 比如 a 发多播数据 给 b ,c , 楼主的意思是, b 收 a 发的多播数据时, 有可以不是a 发
的数据包的顺序, 是这个意思吗?
不是这意思,我想说的是:Server按顺序多播发出的数据A,B,C...,在Client端接收时顺序可能会变成B,A,C...(这种情况可能发生吗?我也没测试过,测试也很难发现,因为它的概率小)。如果这样在Client没有校验就马上处理接收到的数据就会丢失数据。
关于编码的问题,如果你没有经验,那么请自己找资料看下基本的原理,客户如果要求不高,那只要用简单的编码算法就可以了。还有理论上CRC验证是不能保证100正确的,但是实际使用中是能够满足一般要求的。
but multicast based on UDP,it's……
客户端收到时进行crc验证
crc验证的具体原理可以在网上找到
crc验证的源代码网上到处有还不明白就去找资料吧 这个是不能懒惰的