【发布时间】:2013-08-30 10:21:52
【问题描述】:
在读取C#NetworkStream(从流式TCP套接字)时,BinaryReader.ReadChar偶尔会抛出异常System.ArgumentException: The output char buffer is too small to contain the decoded characters, encoding 'Unicode (UTF-8)'
所有缓冲区都有其默认大小(没有一个是手动设置的),设置更大的缓冲区大小不会影响问题。
什么是完全令人沮丧的:
使用断点并通过
ReadChar调用逐步遍历行时不会发生异常如果
ReadChar前面有Thread.Sleep(1000),则不会发生异常(但在较小的超时情况下仍会发生)在
FileStream上使用BinaryReader时不会发生异常,其中存储了 TCP 服务器应答的所有精确字节。
那么,从套接字流中缓冲单个字符的时间相关问题是什么?
【问题讨论】:
标签: c# networkstream binaryreader