socket发一个较大数据,对方如何判断接收完成?
我在试着编一个简单的远程监控软件,原理是
服务端每隔固定的时间就截屏幕,转成jpg(1024*786大概100k左右),然后把jpg数据发
给监控端(一次send一张),监控端接收并把他画出来。
在监控端的连接CSocket的OnReceive里Receive数据。画之,但画出来的经常只是图上面的一小部分。
后来发现OnReceive是数据缓冲有值他就触发,所以每次receive都是接收10几k就画了.
最烦的就是有时缓冲里的数据有前一个图片的结尾和后一个图片的开头.不好判断一张图的结束
我现在想到的方法是服务端发送时在数据后面加段结束标识,监控端用一个全局固定数组tempData来不停接收数据,
遇到结束标识时,把tempData前面的数据画出来,并删除,把tempData后面的数据往前移。
(感觉有点麻烦,还没有实施这种方法)
如标题,想问一下各位高人,怎么判断一个较大数据被完整接收?太感谢了.