When accessing Stream
s, you usually read and write data in small chunks (e.g. a kilobyte or so), or use a method like CopyTo
that does that for you.
This is an example using CopyTo
to copy the contents of a stream to another stream and return it as a byte[]
from a method, using an automatically-sized buffer.
using (MemoryStream ms = new MemoryStream())
{
networkStream.CopyTo(ms);
return ms.ToArray();
}
This is code that reads data in the same way, but more manually, which might be better for you to work with, depending on what you're doing with the data:
byte[] buffer = new byte[2048]; // read in chunks of 2KB
int bytesRead;
while((bytesRead = networkStream.Read(buffer, 0, buffer.Length)) > 0)
{
//do something with data in buffer, up to the size indicated by bytesRead
}
(the basis for these code snippets came from Most efficient way of reading data from a stream)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…