Я хочу читать все данные, синхронно, получать с клиента или сервера без readline()
метод в java (например, readall()
в C++).
Я не хочу использовать что-то вроде кода ниже:Читать все данные из сокета
BufferedReader reader = new BufferedReader(new inputStreamReader(socket.getInputStream()));
String line = null;
while ((line = reader.readLine()) != null)
document.append(line + "\n");
Какой метод я должен использовать?
Каково ваше возражение против использования кода, который вы опубликовали? – EJP
Почему вы хотите получить все данные? Общей путаницей в использовании Sockets является предположение, что оно поддерживает прием сообщений, и если вы можете сразу прочитать все данные, вы можете прочитать одно целое «сообщение». Хотя это может показаться работающим в TCP при низкой нагрузке со временем между «сообщениями», TCP не поддерживает это, и это не работает надежно esp под нагрузкой. Если вам нужен протокол на основе сообщений, вы можете попробовать SCTP в Java 7 или использовать TCP так, как он был предназначен, в качестве протокола потоковой передачи. –
что-то вроде браузера никогда не посылает null wile подключен и ждет ответа ... я хочу читать все заголовки и данные одновременно и синхронно! –