问题很简单:网络流的 StreamWriter 中的 WriteLine() 是否总是传递整行?或者有一些限制?例如,它只提供一定大小的行。
我的观点是,如果我调用 WriteLine(1 行上的一些非常长的字符串(例如 10000000 个字符)),StreamReader 的 ReadLine() 会像我发送它一样接收它吗?或者它只会收到一部分?
最佳答案
是的,流另一端的 StreamReader
上的 ReadLine
将始终读取完整的行(或产生 OutOfMemoryException
),但是这是 ReadLine
的属性比网络流还多。在网络级别,对于 NetworkStream
,它可能已被分成多个单独的发送和接收。
ReadLine
在看到换行符序列之前不会返回。
(警告 - 如果您传递给 WriteLine
的字符串在内部包含换行符序列,那么您只会收到字符串的该部分,直到第一个换行符序列)
关于c# - 网络流的 StreamWriter 中的 WriteLine() 是否总是传递整行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15274279/