概述
我有一个Client-Server,我在服务器上发送streamWriter.WriteLine(messageToClient);
发送大邮件。客户端上的streamReader.ReadLine();
正在读取2000长度的消息。
这里的问题是streamWriter.Flush()
对较大的消息没有影响,因为我的目标是服务器能够在缓冲区之间直接切换(具有流畅的服务器消息输出)而不是(服务器响应将混杂在一起,直到达到缓冲区限制以进行刷新)。
问题:我认为缓冲区是自动刷新的,因为它们已满?那么streamWriters的最大缓冲区大小是多少?
我已经使用更小的messageToClient
进行了测试,并且流的未刷新按预期工作。 Aka服务器流一次向客户端输出一组小消息,大概是因为缓冲区已满。
答案 0 :(得分:5)
您是否尝试过使用the constructor that takes the buffer size as an argument?
public StreamWriter(
Stream stream,
Encoding encoding,
int bufferSize
)
编辑:在反射器中查看,看起来默认缓冲区大小为1024字节。