1

TCP ストリーミング ソフトウェアからストリーミング データを読み取っています。現在、whileループを使用して連続して読み取りを行っています。しかし、これがストリーミング データを読み取るための最良の手法であるかどうかはわかりません。

以下は、私が現在使用しているコードです:

  Socket client=new Socket("169.254.99.2",1234);
  System.out.println("Client connected ");

//getting the o/p stream of that connection
  PrintStream out=new PrintStream(client.getOutputStream());
  out.print("Hello from client\n");
  out.flush();

//reading the response using input stream
BufferedReader in= new BufferedReader(new InputStreamReader(client.getInputStream()));
  int a = 1;
  int b= 1;

//
  while(a==b){
       // I'm just printing it out.
       System.out.println("Response" + in.read());
  }

提案をお願いします???

4

2 に答える 2

0

現在、whileループを使用して連続して読み取りを行っています。

これは、ストリーミング データを読み取るための最良の手法です。ただし、ループはストリームの終わりをテストする必要があります。これは、Java で -1 を返す read() によって通知されます。あなたの 'a==b' テストは無意味です。いくつかの可能なループ テストがあります。

while (true) // with a break when you detect EOS

または

while ((c = in.read()) != -1)

ここで、「c」は「int」です。

しかし、これがストリーミング データを読み取るための最良の手法であるかどうかはわかりません。

なぜだめですか?

于 2013-10-23T02:13:16.957 に答える