Бесконечное чтение в Socket
клиент:
try (Socket socket = new Socket()) {
socket.connect(new InetSocketAddress("127.0.0.1", 2000));
socket.getOutputStream().write("data".getBytes(StandardCharsets.UTF_8));
socket.getOutputStream().flush();
System.out.println("write 1");
System.out.println(new String(socket.getInputStream().readAllBytes()).intern());
System.out.println("read 1");
socket.getOutputStream().write("data".getBytes(StandardCharsets.UTF_8));
socket.getOutputStream().flush();
System.out.println("write 2");
} catch (Throwable throwable) {
throw new RuntimeException(throwable);
}
сервер:
try (ServerSocket server = new ServerSocket(2000)) {
Socket socket;
while ((socket = server.accept()) != null) {
System.out.println(new String(socket.getInputStream().readAllBytes()).intern());
System.out.println("read 1");
socket.getOutputStream().write(new byte[1024]);
socket.getOutputStream().flush();
System.out.println("write 1");
System.out.println(new String(socket.getInputStream().readAllBytes()).intern());
System.out.println("read 2");
}
} catch (Throwable throwable) {
throw new RuntimeException(throwable);
}
после "write 1" сервер начинает бесконечно читать то что отправил ему клиент, и если отправлять с сервера на клиент вместо клиента на сервер происходит тоже самое.