非常に基本的なネットワーク操作を実行しようとしていますが、問題が発生しています。
元々、 を使用NetworkStream.Length
して新しい を作成しようとしていましたが、シーク操作をサポートしていないためbyte[]
、これができないことが明らかになりました。NetworkStream
次に、シーク操作を可能NetworkStream
にするを にコピーする方法を示す例をいくつか見つけました。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
何らかの処理を行うために myを aにコピーする必要がありますMemoryStream
が、このタスクだけでは、必要以上に困難であることがわかっています。
以前にこの問題に遭遇した人はいますか?