StreamWriter автоматически промывает буфер при получении больших сообщений
Обзор
У меня есть клиент-сервер, на котором у меня есть streamWriter.WriteLine(messageToClient);
на сервере, отправляющем большие сообщения. streamReader.ReadLine();
на клиенте читает сообщения длиной 2000 нормально.
Проблема здесь заключается в том, что streamWriter.Flush()
не влияет на более крупные сообщения, потому что я стремлюсь к тому, чтобы сервер мог переключаться между буферами, сбрасываемыми непосредственно (имея выход сообщения сервера fluid) и нет (ответ сервера будет перемешиваться вместе, пока он не достигнет предела буферов). промывать).
Вопрос: я думаю, что буферы автоматически промываются, потому что они заполнены? Так что же такое максимальный размер буфера streamWriters?
Я проверил, используя гораздо меньшие messageToClient
и не промывка потока работает, как задумано. Aka поток сервера выводит группу небольших сообщений сразу клиенту, предположительно потому, что буфер был полон.
1 ответ:
Вы пробовали использовать конструктор, который принимает размер буфера в качестве аргумента ?
public StreamWriter( Stream stream, Encoding encoding, int bufferSize )
Edit : копаясь в reflector, похоже, что размер буфера по умолчанию составляет 1024 байта.