我正在开发一个 HTTP 服务器/客户端,我目前可以通过它发送小文件,例如 .txt 文件和其他不需要太多内存的易于阅读的文件。但是,当我想发送更大的文件时,比如 .exe 或大 .pdf,我会遇到内存错误。这是因为在我尝试发送或接收文件之前,我必须指定我的 byte[] 缓冲区的大小。有没有办法在从流中读取缓冲区时获取缓冲区的大小?
我想做这样的事情:
//Create the stream.
private Stream dataStream = response.GetResponseStream();
//read bytes from stream into buffer.
byte[] byteArray = new byte[Convert.ToInt32(dataStream.Length)];
dataStream.read(byteArray,0,byteArray.Length);
但是,当调用“dataStream.Length”时会引发错误:
ExceptionError: This stream does not support seek operations.
有人可以就如何从流中获取字节 [] 的长度提供一些建议吗?
谢谢,