0

解析が完了する前に発生したストリームの終了というエラーがスローされる理由がわかりません。私はこのリンクを見ましたが、私の場合、問題を解決するものは何もありませんでした。ブレークポイントを使用して、エラーウィッチがスローする正確なポイントを見つけました

       Console.WriteLine("Message from client ");

前もって感謝します

   if (stream.DataAvailable)
   {
       byte[] buffer = new byte[10024];
       int byteCount = stream.Read(buffer, 0, buffer.Length);
       byte[] inBytes = new byte[byteCount];
       for (int counter = 0; counter < byteCount; counter++)
           inBytes[counter] = buffer[counter];
       BinaryFormatter formatter = new BinaryFormatter();
       MemoryStream memory = new MemoryStream();
       memory.Write(inBytes,0,inBytes.Length);
       object message = (object)formatter.Deserialize(memory);
       Console.WriteLine("Message from client ");
       memory.Close();
   }

編集*これは私の悪いことでしたここの実際のコードには何も問題はありませんでした私はクライアント側で間違いを犯しました。binaryformatterの代わりにEncoding.ASCIIを使用しました。

4

2 に答える 2

5

さて、あなたはへの単一の呼び出しがすべてstream.Readのデータを読み取ることになると想定しています。特にネットワークストリームの場合、これはほとんどの場合間違いです。

そもそも電話をかけているだけではない理由はありますformatter.Deserialize(stream)か?

于 2012-06-20T17:59:07.300 に答える
0

これは私の悪いことでした。ここの実際のコードには何も問題はありませんでした。クライアント側で間違いを犯しました。binaryformatterの代わりにEncoding.ASCIIを使用しました。

于 2012-06-20T19:32:54.713 に答える