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 に答える