日期:2014-05-19  浏览次数:20788 次

socket Receive问题!
想在socket   接收数据做个进度条,   但是怎么知道当前接收多少长度呢?
下面的rds是接收所有数据长度吧?

  byte[]   InBuffer   =   new   byte[1024];

                        while   ((rds   =   Client.Receive(InBuffer))   !=   0)
                        {
                                ...根据当前接收数据多少   进行进度条操作
                        }


------解决方案--------------------
socket不记得有没有记录的 如果没有记录长度的标志
一般的做法是发送端buffer[0] 记录Length
------解决方案--------------------
rds是当次接收的数据的长度。不是多次接收的总长度,你要总长度只要依次累加就可以了!
------解决方案--------------------
?
rds是当次接收的数据的长度。不是多次接收的总长度,你要总长度只要依次累加就可以了!

---------------------------------
这个不算答案吗?
------解决方案--------------------
服务器端把长度放在数据头部先发送出去,然后后边跟着原始数据,接收端处理一下,分别提取出来。。。
俺没试过,不过应该可以吧