Как настроить динамический размер буфера для BufferedReader в Java? - PullRequest
1 голос
/ 25 января 2012

Я тестирую потоковую передачу данных с клиента на сервер.Он генерирует случайные двойные и целые числа и отправляет их на сервер;сервер должен читать их до тех пор, пока пользователь не остановит его.

Но, похоже, он всегда останавливается, когда 2426-е данные прочитаны сервером.

Клиент:

    while ((fromServer = in.readLine()) != null) 
    {

        ...                     
        else 
        {
          while(!bStop)
          {
                ins++;
                dUserInput = rRandom.nextDouble();
                out.println(ins +", " + dUserInput);   
          }
           .....   
         }

Сервер:

BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()), buffersize); 

while ((inputLine = in.readLine()) != null) {
   ...
 System.out.println("recv> " + inputLine);
}

Вывод:

....
recv> 2421, 0.791175426456302
recv> 2422, 0.1424806550326747
recv> 2423, 0.32742036805153263
recv> 2424, 0.07852028188946414
recv> 2425, 0.8438837153559341
recv> 2426, 0.8548109748012377

Я удалил ', buffersize' из BufferedReader (), он останавливается на 2426-м данных, даже если логическое значение 'bStops'клиент все еще ложныйИнтересно, есть проблема с размером буфера.

Если клиент отключен после остановки на 2426-м данных, на выходе сервера отображается много данных после 2426-го и сообщений об ошибках.Один из них о размере буфера.

Есть идеи?Должен ли я использовать DataInputStream вместо BufferedReader?

Спасибо,

...