给定大消息时,StreamWriter会自动刷新缓冲区

Hou*_*use 2 c# networking flush streamwriter

概观

我有一个客户端服务器,我streamWriter.WriteLine(messageToClient);在服务器上发送大量消息.该streamReader.ReadLine();客户端上阅读2000年长度的消息罚款.

这里的问题是streamWriter.Flush()对较大的消息没有影响,因为我的目标是服务器能够在缓冲区之间直接切换(具有流畅的服务器消息输出)而不是(服务器响应将混杂在一起)直到它达到缓冲区限制冲洗).

问题:我认为缓冲区是自动刷新的,因为它们已满?那么streamWriters的最大缓冲区大小是多少?

我已经测试使用更小messageToClient的流,并且流的不冲洗按预期工作.Aka服务器流一次向客户端输出一组小消息,大概是因为缓冲区已满.

dka*_*man 5

您是否尝试使用将缓冲区大小作为参数的构造函数

public StreamWriter(
    Stream stream,
    Encoding encoding,
    int bufferSize
)
Run Code Online (Sandbox Code Playgroud)

编辑:在反射器中探视它看起来像默认缓冲区大小是1024字节.