2

概述

我有一个客户端服务器,我streamWriter.WriteLine(messageToClient);在服务器上发送大消息。客户端正streamReader.ReadLine();在读取 2000 长度的消息。

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

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

我已经使用小得多的东西进行了测试messageToClient,并且流的不刷新按预期工作。也就是服务器流一次向客户端输出一组小消息,大概是因为缓冲区已满。

4

1 回答 1

5

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

public StreamWriter(
    Stream stream,
    Encoding encoding,
    int bufferSize
)

编辑:在反射器中四处寻找,看起来默认缓冲区大小为 1024 字节。

于 2011-04-15T00:05:17.283 回答