屏幕广播的实现(三)
来源:互联网 发布:淘宝开店铺怎么找货源 编辑:程序博客网 时间:2024/05/17 08:22
上次说到运用IP组播来实现一对多的数据传输。但UDP数据包的大小有限制,图片需分块传输,并且UDP是不可靠的协议。会出现丢包的现象。导致接收方不能接收到完整图片。
一开始很自然的想到,那么重新传输就是了。但是对于一对多的传输来说,还是传输量太大。,最后经过在CSDN的搜索,找到一种方法
(CSDN地址http://download.csdn.net/detail/ztxzyr/3824829)。
说的浅显一点,就是发送端只管发,接收端判断是不是一个完整的图片数据~。通过一个结构体,带有一个数据块的各种信息。
这是我们组里大神定义的一个结构体。
#define MAXBUFSIZE (32 * 1024) //缓冲区最大值//UDP数据包typedef struct _UDPPACKAGE{ DWORD dwIndex; //当前包序号 DWORD dwTotalSize; //数据总大小 bool bFinish; //是否已结束 char buf[MAXBUFSIZE]; //数据缓冲区 DWORD dwDataSize; //缓冲区数据大小}UDPPACKAGE, *PUDPPACKAGE;
假设一个图片被分成四部分。那么四个数据都填充在四个结构体内,其中的dwIndex按照的顺序。并且最后一个数据包中的bFinish为true,其余三个为false。发送端只管按照顺序发,而接收端需要做的就是按照顺序接收。当顺序不对的时候则丢弃数据并且停止接收,直接接受下一张图。直到数据包按照顺序的发送过来并且接收到了true,则写入数据。
如图。接收端只负责接收按顺序传送的数据包。其余的不处理。
0 0
- 屏幕广播的实现(三)
- 屏幕广播的实现(一)
- 屏幕广播的实现(二)
- Python实现局域网内屏幕广播的技术要点分析
- 文件广播的实现
- 广播实现的方式
- android广播的实现
- 以太网的三种广播
- Android中Webview自适应屏幕实现的三种方法
- JAVA实现远程录屏或广播屏幕
- 【代码练习8】UDP协议实现局域网屏幕广播功能
- 双服务+时间广播和屏幕广播实现Android App保活
- 三种广播,以及广播接收器的注册方式
- Android 屏幕事件广播
- 广播,组播的实现
- UDP实现的广播通信
- android广播机制的实现
- UDP广播程序的实现
- 二叉查找树转换为双向链表
- libstdc++/include/new: No such file or directory
- Longest common subsequence / substring
- iPhone 4S 听筒的拆解与安装
- Beyond
- 屏幕广播的实现(三)
- 二维“数组”转换成二维“指针”
- fzu 1263 (栈的应用)
- 20140424工作总结
- 矩阵的简单测试模板
- VS2010类模板更改,增加版权等等信息
- 在网页中用html5打开摄像头
- 算法分析---查找最大回文子串
- 又是一个简单的问题浪费一上午