Не получается отправить через сокеты больше 1 сообщения java
У меня есть 2 класса клиент-сервер, сервер может 1 раз прочитать сообщение от клиента и 1 раз отправить(клиент так-же может только 1 раз прочитать и 1 раз отправить). При попытке отправить/получить больше 1 сообщения что клиент что сервер просто висят в режиме ожидания. Перепробовал несколько способов, но решить проблему не получилось. `public class Client { private static final int PORT = 8000;
public static void main(String[] args) throws Exception {
Socket clientSocket = new Socket(InetAddress.getLocalHost(), PORT);
var reader = startInputService(clientSocket);
var writer = startOutputService(clientSocket);
String in = reader.readLine();
System.out.println(in);
Scanner scanner = new Scanner(System.in);
String out = scanner.nextLine();
writer.write(out);
System.out.println(reader.readLine());
writer.close();
reader.close();
clientSocket.close();
}
private static BufferedWriter startOutputService(Socket clientSocket) throws Exception {
return new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream()));
}
private static BufferedReader startInputService(Socket clientSocket) throws Exception {
return new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
}
public class Server { private static final int PORT = 8000;
public static void main(String[] args) throws Exception {
startConnection();
}
private static void startConnection() throws Exception {
var serverSocket = new ServerSocket(PORT);
while (true) {
Socket clientSocket = serverSocket.accept();
var reader = startInputService(clientSocket);
var writer = startOutputService(clientSocket);
String out = "Guess the number\n";
writer.write(out);
writer.flush();
String in = reader.readLine();
System.out.println(in);
//с этого момента код не работает
writer.write("test");
writer.close();
reader.close();
}
}
private static BufferedWriter startOutputService(Socket clientSocket) throws Exception {
return new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream()));
}
private static BufferedReader startInputService(Socket clientSocket) throws Exception {
return new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
}
}`