如何实现位图的分包传送和接受

altan 2002-03-23 08:53:47
庆诸位高手帮忙,如何实现位图的网络传送和接受,在UDP协议下。
因为每次不能超过64K,所以如何分包发送和分包接受是一个大问题,并最好能处理网络丢包问题
谢谢
...全文
100 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaomingyuxiang 2002-03-27
  • 打赏
  • 举报
回复
我有全套的图像处理系统源代码,技术含量和photoshop 相当,感兴趣吗?帮我做做技术转让吧,必有重谢!
还有一套音效处理系统源代码,比之cooledit毫不逊色,网上传输位图是小case ,我有网上传送抓屏,监控,网上影院全套的代码。有兴趣就给我邮件联系吧。谢谢!

florist2000 2002-03-26
  • 打赏
  • 举报
回复
UDP传送位图实现起来比较麻烦
因为位图是一个临界的资源。
我給讲讲思路。
首先,位图文件头和位图信息头需要单独传送
而且这个东西不能出现任何差错,一旦出现差错,那么你的劳动就白费了。
所以,位图文件头和位图信息头要定义为可靠传送
需要在接受方和发送方进行应答处理
发送方只有接受到接受方受到这些位图信息的确认消息才发送位图数据。
其次,位图数据需要切片发送,并且要給每个切片编写上序号和有效数据的
原因是如果你整体发送,那么将出现大大不利的局面
也就是UDP将自动拆开为很小的切片,这些切片将无序的到达接受方
那么你接受的就是没有次序的切片,位图一踏胡涂。
第三,接受方的处理
接受到位图信息头之后,就发送确认信息,
并根据位图信息头中这帧位图的参数分配内存
接受数据的时候按照数据切片的序号,拷贝到分配的内存中相应的位置
(这其实是一个容错处理,就算又切片丢失,也不影响位图的整体显示)
第四,发送方处理
先发送位图信息头,等待确认,超时仍没有受到确认信息,再次重传位图信息头。一定要确保对方位图信息头完整接受。
接受到对方确认信息后,切片发送数据,这就不需要确认信息了。

申明:如果你是再局域网内,其实就直接切片发送就是,一般不会出现问题。
因此不需要上面那么复杂的考虑




zbde00 2002-03-26
  • 打赏
  • 举报
回复
分包你可以采用如下策略:

可以OpenFile打开一个文件.(以二进制形式打开)
然后利用PBYTE * pbyte
pbyte=(PBYTE*)malloc(...)(包的大小控制)
ReadFile(pbyte,...)
这样,你要传递数据的时候,可以把pbyte指针传给你的函数.

没有调试.你自己摸索吧.
反正就这几个函数.

不过你如果是想一接收到数据就显示的话,也是可以的.要麻烦一点了.你需要使用
SetDIBitsToDevice的uStartScan和cScanLines参数.


altan 2002-03-25
  • 打赏
  • 举报
回复
谢谢
udp 速度快。tcp速度好慢吧?
我想开发的时及时发送图像的程序,基教师机图像发送到需学生机上。
好像这个问题很复杂,也好考虑到一些多少位色。
zbde00 2002-03-23
  • 打赏
  • 举报
回复
如果仅仅是传输的话,你可以一次读入少量的位图数据,然后传输
不过你如果是想一接收到数据就显示的话,也是可以的.要麻烦一点了.你需要使用
SetDIBitsToDevice的uStartScan和cScanLines参数.

UDP是无连接的协议,如果要处理丢包问题,困难.你为什么不用TCP协议呢?

1,660

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 非技术类
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧