c# - 网络流的 StreamWriter 中的 WriteLine() 是否总是传递整行?

标签 c# networkstream

问题很简单:网络流的 StreamWriter 中的 WriteLine() 是否总是传递整行?或者有一些限制?例如,它只提供一定大小的行。

我的观点是,如果我调用 WriteLine(1 行上的一些非常长的字符串(例如 10000000 个字符)),StreamReader 的 ReadLine() 会像我发送它一样接收它吗?或者它只会收到一部分?

最佳答案

是的,流另一端的 StreamReader 上的 ReadLine 将始终读取完整的行(或产生 OutOfMemoryException),但是这是 ReadLine 的属性比网络流还多。在网络级别,对于 NetworkStream,它可能已被分成多个单独的发送和接收。

ReadLine 在看到换行符序列之前不会返回。


(警告 - 如果您传递给 WriteLine 的字符串在内部包含换行符序列,那么您只会收到字符串的该部分,直到第一个换行符序列)

关于c# - 网络流的 StreamWriter 中的 WriteLine() 是否总是传递整行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15274279/

相关文章:

c# - Mjpeg 流式传输不适用于谷歌浏览器

c# - 我可以使用声明数据将 CreatedBy 用户数据插入到自定义表中吗?

c# - 使用 TCP 在 C# 中实现 FTP 客户端

c# - 复制流的最后 16 个字节以外的所有字节?流结束的早期检测?

c# - 发送大量 Protobuf 消息时 NetworkStream 关​​闭

c# - 如何使用 C# 解析包含字段的 $(美元)?

c# - ASP.NET Core 3.0 Web API 路由不起作用

c# - 试图覆盖 ComboBox 的字典 ToString

java.io.IOException : Permission denied on network folder 异常

c# - NetworkStream ReadAsync 和 Read 同一个方法