通过TCP Socket发送图片,然后显示出来,为什么一顿一顿的?解决办法

通过TCP Socket发送图片,然后显示出来,为什么一顿一顿的?
RT。 

通过TCP Socket发送48张连续图片,这些图片我是从一个小视屏一帧一帧截下来的。然后在接收端,我用GDI+的 OleLoadPicture函数获取接受到的内存内容,用render方法显示出来。整个过程都能显示出来,但是为什么一顿一顿的呢。不流畅。有一段超级快,就像快播一样,然后就卡一下,卡个好几秒钟,然后又快速的显示完。

那么,请教怎么控制传输的速度,怎么解决这个问题。

------解决方案--------------------
多线程,显示时不能停止接收
------解决方案--------------------
你没有做缓冲处理,当然不行。

首先,你先定义缓冲时间,比如500毫秒。也就是说,从A点到B点,至少要经过500毫秒的缓冲。然后你需要在每一帧图像上打时间戳。

B点收到图像,也不着急显示,而是要等到其从缓冲区弹出。你最好定义一个传输窗口,这个窗口大小为小于500毫秒的数据,数据不必按照顺序传输,而是在窗口内的帧都可以传输,接收也不分先后,到了B点再排序,如果某帧错过了时间窗口,就不必传了。

也就是说,在你的显示端和采集端之间存在一个缓冲区间,这样才能平滑地显示。

------解决方案--------------------
接收端做缓存
达到一定数量了再按预定的帧率显示