我不确定为什么这会抛出错误 在解析完成之前遇到的流结束。我查看了此链接,但在我的情况下没有任何内容可以解决问题。 我使用断点来找到它抛出错误的确切点 女巫是
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();
}
编辑* 这是我的错 这里的实际代码没有任何问题 我在客户端犯了错误。 我使用了Encoding.ASCII而不是二进制格式化程序。
好吧,你假设对stream.Read
的一次调用将读取所有数据。这几乎总是一个错误,特别是如果它是一个网络流。
有什么理由你一开始就不打电话给formatter.Deserialize(stream)
吗?
这是我
的错 这里的实际代码没有任何问题 我在客户端犯了错误。 我使用了Encoding.ASCII而不是二进制格式化器。