日期:2014-05-18 浏览次数:20935 次
List<byte[]> buffers = new List<byte[]>();
while(true)
{
    byte[] tempBuffer = new byte[SmallBufferSize];
    //我假设DataSource是数据源,它的Fillbuffer方法填充指定的byte[],并且最多填充SmalLBufferSize大小。
    //返回实际填充的长度(可能不足SmallBufferSize)
    int k = DataSource.FillBuffer(tempBuffer,SmallBufferSize);
    if(k<SmallBufferSize)
    {
       byte[] tempBufferActual = new byte[k];
       tempBuffer.CopyTo(tempBufferActual,0,k);
       tempBuffer = tempBufferActual;
    }
    //添加进总的Buffer当中
    buffers.Add(tempBuffer);
    //如果返回的数据长度不是SmallbufferSize表示已读到文件尾,退出
    if(k<SmallBufferSize)break;  
}
//求出总缓冲区长度
int bufferLength = 0;
foreach(byte[] ba in buffers)
{
    bufferLength +=ba.Length;
}
byte[] TotalBuffer = new byte[bufferLength];
int offset = 0;
foreach(byte[] ba in buffers)
{
    ba.CopyTo(TotalBuffer,offet,ba.Length);
    offset+=ba.Length;
}
//TotalBuffer就是你要的总的Buffer了
------解决方案--------------------
你最好评估一下,一张图片多大!!最好不要把一张在拆分了
------解决方案--------------------
y应该是C#网络编程吧 ,我才开始学,很喜欢,不过还不会