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个字节,得到数据长度,然后再根据这个长度去决定收取多少数据