读取 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)
(但仍然可以发生较小的超时)BinaryReader
使用on时不会发生异常FileStream
,其中存储了 TCP 服务器答案的所有精确字节。
那么,从套接字流中缓冲单个字符的时间相关问题是什么?