NetworkSream 中读取数据,总在源的末尾read()返回值为0的时候,停在那儿!求解
NetworkSream 中读取数据,总在流的末尾read()返回值为0的时候,停在那儿!!!!!求解啊
while (true)
{
try
{
bytesRead = netStream.Read(buffer, 0, buflength);
}
catch
{
}
if (bytesRead <= 0)
break;
filestream.Write(buffer, 0, bytesRead);
this.progressBar.Value += bytesRead;
}
filestream.Close();
我用read方法从网络流里读取数据,实现下载!但是我调一下,每次当read()的返回值为0的那一次read,就停在那儿了。搞了半天也没搞明白,求解啊!
------解决方案--------------------
代码看不出问题,设个断点跟一下就是了
------解决方案--------------------
bytesRead = netStream.Read(buffer, 0, buflength);
需要知道还有多少没有传输完毕,是需要协议保证的,不然会一直等待,直到超时
一般简单的会先发一个数据长度,4个字节,然后再发数据内容
接收的时候就会先收取4个字节,得到数据长度,然后再根据这个长度去决定收取多少数据
while (true)
{
try
{
bytesRead = netStream.Read(buffer, 0, buflength);
}
catch
{
}
if (bytesRead <= 0)
break;
filestream.Write(buffer, 0, bytesRead);
this.progressBar.Value += bytesRead;
}
filestream.Close();
我用read方法从网络流里读取数据,实现下载!但是我调一下,每次当read()的返回值为0的那一次read,就停在那儿了。搞了半天也没搞明白,求解啊!
------解决方案--------------------
代码看不出问题,设个断点跟一下就是了
------解决方案--------------------
bytesRead = netStream.Read(buffer, 0, buflength);
需要知道还有多少没有传输完毕,是需要协议保证的,不然会一直等待,直到超时
一般简单的会先发一个数据长度,4个字节,然后再发数据内容
接收的时候就会先收取4个字节,得到数据长度,然后再根据这个长度去决定收取多少数据