расширенное чтение байтов сокета для медленного соединения - PullRequest
0 голосов
/ 06 ноября 2011

я просто хочу задать простой нуб вопрос, наверное ... если соединение медленное и не рекомендуется читать весь байт за раз ... тогда какой будет лучший алгоритм чтения сокетов, который будет работать?

так как я несколько раз сталкивался с чтением сокета, иногда поток байтов не передавался полностью и делал его недопустимым ...

В настоящее время я читаю мой сокет так:

byte[] message = new byte[lengthOftheByte];
byte buffer = 0;
int count = 0;
while(count < lengthOftheByte) {
  int read = myInputStream.read();
  buffer = (byte) read;
  message[count] = buffer;
  count++;
}

он читает один байт, затем помещает его в элемент массива это работает на одном процессе чтения, но не в потоке ...: (

1 Ответ

1 голос
/ 06 ноября 2011

Используйте либо read(byte[]), либо BufferedInputStream. Однако этот метод рекомендуется для всех соединений, а не только для медленных. Если у вас медленное соединение, поэтому вы привязаны к вводу, ничто из того, что вы можете сделать с кодом, может вам помочь.

...