TCP 传输图片,图片接受成功,但是显示失真,总是缺一部分?

yu2xiangyang 2011-06-09 01:41:27
上次发了帖,是TCP图片接受失真,现在图片接受成功了,但是显示图片,总是在图片底部缺不部分。
图片传输结束后,发送一个图片传送结束的消息给服务器,然后服务器及时显示图片。
我在文件夹下面打开图片,图片是完整的。
我想是不是图片还没接受完毕,图片结束的消息就被接收到了。
我在图片发送结束标志前加了一个延迟,服务器显示图片还是缺失一块。
请问大家有什么好方法?
...全文
928 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yu2xiangyang 2011-06-09
  • 打赏
  • 举报
回复
自己调试发现了错误原因,接收图片FOPEN,然后接受完成后,没有及时FCLOSE,然后就开始读图片,显示图片,结果总是在图片底部显示失真。
接受完图片,及时FCLOSE后,图片会更新为完整的图片。再去读的,就完整了,谢谢各位。
结贴!
lijianli9 2011-06-09
  • 打赏
  • 举报
回复
你可以调试下看看发送的图片长度和你接收的总共的数据长度是否相同。
yu2xiangyang 2011-06-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 visualeleven 的回复:]
你数据没有接受完整吧,自定义协议包长+数据
[/Quote]
单独调试数据接受,图片接收是完整。图片接收是正确的。但是单独显示图片又可以完整显示。再看看绘制程序。
yu2xiangyang 2011-06-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yungmode 的回复:]
检查 图片绘制有没有问题哦! 呵呵!
[/Quote]
绘制应该没问题吧,我用文件夹下一个图片,绘制是成功的,但是接受图片在显示失真。纠结ING......
Eleven 2011-06-09
  • 打赏
  • 举报
回复
你数据没有接受完整吧,自定义协议包长+数据
yu2xiangyang 2011-06-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lifesider 的回复:]
应该是服务器接受完图片数据后,发送一个ACK给客户端,此时客户端再发送一个传送结束消息给服务器显示
[/Quote]
发送一个ACK给客户端,服务器在发送结束消息给服务器,服务器显示还是有点失真,总是在图片最下面一块。图片接收是完整的。
yungmode 2011-06-09
  • 打赏
  • 举报
回复
检查 图片绘制有没有问题哦! 呵呵!
lifesider 2011-06-09
  • 打赏
  • 举报
回复
应该是服务器接受完图片数据后,发送一个ACK给客户端,此时客户端再发送一个传送结束消息给服务器显示
kyotrue 2011-06-09
  • 打赏
  • 举报
回复
客户端传完了,不代表服务端收完了。。。

你在你的报文头加上一个长度啊,服务端就知道要收多长的数据才算收完了,根本用不着客户端来通知
smwhotjay 2011-06-09
  • 打赏
  • 举报
回复
先接收图片大小.在while反复接收图片大小字节的buffer.就是图片文件了

18,363

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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