我正在尝试执行一些非常基本的网络操作,但我遇到了一些麻烦。
最初,我试图用来NetworkStream.Length
创建一个新的byte[]
,但很明显这是不可能的,因为NetworkStream
它不支持查找操作。
然后我找到了一些示例,展示了如何将 复制NetworkStream
到 a MemoryStream
,这允许查找操作。到现在为止还挺好。
或者是吗?
一旦using
语句的范围受到影响,应用程序就会停止。它仍在运行,在做某事,但我真的不知道是什么。这是代码:
void HandleClientComm(object client)
{
TcpClient tcpClient = (TcpClient)client;
//copy client stream to memory stream to allow seek operations
MemoryStream clientStream = new MemoryStream();
using (var clientRequestStream = tcpClient.GetStream())
{
clientRequestStream.CopyTo(clientStream);
}
//...
}
所以这就是我的问题让我完全难过的地方。我需要将我的复制NetworkStream
到 aMemoryStream
以进行一些处理,但事实证明,仅此一项任务就比它应该做的要困难得多。
有没有人遇到过这个问题?