Я пытаюсь написать очень простой java-сервер, который в основном copy-paste из Oracle, учебник и доступ к нему из браузера через мою локальную сеть IP 192.168.0.106/?Q1.
Моя программа выводит "Ready ..." в терминале, но не выводит запрос браузера Q1. Затем я делаю второй запрос Q2 к тому же IP и программа печатает его: «GET /? Q2 HTTP / 1.1 ...».
Когда я выполняю тот же запрос к 127.0.0.1 (Q1 и Q2), неожиданно программа выводит «Ready ...» в первом запросе, но печатает «null» во втором.
Почему я теряю свой первый запрос? Мой in.readLine () вызывает это? И почему при подключении к адресу обратной петли 127.0.0.1 я могу установить соединение, но не могу распечатать мой запрос?
int portNumber = 80;
System.out.println("Started...");
String s="#";
try (
ServerSocket serverSocket = new ServerSocket(portNumber);
Socket clientSocket = serverSocket.accept();
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
) {
System.out.println("Ready...");
s=in.readLine(); /// Let's take first line only
System.out.println(s);
} catch(Exception e){
System.out.println("Error "+e);
}
Я бы хотел видеть первый запрос в выводе: "GET /? Q1 ...". Спасибо.