-1

基本的なサーバー - クライアント接続 (サーバーは Java、クライアントは C#) をセットアップしました。サーバーが PrintWriter を使用して大量のデータをクライアントに送信すると、StreamReader を使用しているときに一部のデータがクライアントによって読み取られません。

サーバーはクライアントに送信します。

Socket TEMP_SOCK = (Socket) RandomServer.Connections.get(1);
PrintWriter TEMP_OUT = new PrintWriter(TEMP_SOCK.getOutputStream());
TEMP_OUT.println("test");
TEMP_OUT.flush();

クライアントはサーバーから受信します:

while(true) {
    NetworkStream Stream = connection.GetStream();
    StreamReader streamin = new StreamReader(Stream);
    string returndata = IN.ReadLine();
    print(return data);
}

ありがとうございました

4

1 に答える 1

0

StreamReader各反復で新しいものを作成する代わりに、元のものを再利用する必要があります。

現時点では、各 StreamReader は余分な文字を消費して内部バッファーを埋めますが、それぞれを再び使用することはないため、それらの文字は飲み込まれてしまいます。

于 2012-09-09T20:37:12.560 に答える