Как распознать EOF в сокетах Java?
Я хочу признатьконец потока данных в сокетах Java. Когда я запускаю приведенный ниже код, он просто зависает и продолжает работать (он застрял на значении10
).
Я также хочу, чтобы программа загружала двоичные файлы, но последний байт всегда различен, поэтому я не знаю, как остановитьпока (Прагматично).
String host = "example.com";
String path = "/";
Socket connection = new Socket(host, 80);
PrintWriter out = new PrintWriter(connection.getOutputStream());
out.write("GET "+ path +" HTTP/1.1\r\nHost: "+ host +"\r\n\r\n");
out.flush();
int dataBuffer;
while ((dataBuffer = connection.getInputStream().read()) != -1)
System.out.println(dataBuffer);
out.close();
Спасибо за любые подсказки.