socket Receive问题!
想在socket 接收数据做个进度条, 但是怎么知道当前接收多少长度呢?
下面的rds是接收所有数据长度吧?
byte[] InBuffer = new byte[1024];
while ((rds = Client.Receive(InBuffer)) != 0)
{
...根据当前接收数据多少 进行进度条操作
}
------解决方案--------------------socket不记得有没有记录的 如果没有记录长度的标志
一般的做法是发送端buffer[0] 记录Length
------解决方案--------------------rds是当次接收的数据的长度。不是多次接收的总长度,你要总长度只要依次累加就可以了!
------解决方案--------------------?
rds是当次接收的数据的长度。不是多次接收的总长度,你要总长度只要依次累加就可以了!
---------------------------------
这个不算答案吗?
------解决方案--------------------服务器端把长度放在数据头部先发送出去,然后后边跟着原始数据,接收端处理一下,分别提取出来。。。
俺没试过,不过应该可以吧