我收到以下异常:
System.NotSupportedException : This stream does not support seek operations.
at System.Net.Sockets.NetworkStream.Seek(Int64 offset, SeekOrigin origin)
at System.IO.BufferedStream.FlushRead()
at System.IO.BufferedStream.WriteByte(Byte value)
以下链接显示这是微软的一个已知问题。 http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=273186
这个堆栈跟踪显示了两件事:
- System.IO.BufferedStream 做了一些荒谬的指针移动操作。BufferedStream 应该缓冲底层流而不是更多。如果有这样的查找操作,缓冲区的质量会很差。
- 对于不支持 Seek 的流,它永远不会稳定工作。
有没有其他选择?我需要一个缓冲区和 C# 中的 NetworkStream 还是已经缓冲了。
编辑:我只想减少对底层套接字流的读/写调用次数。