Я пытаюсь скопировать сканер, чтобы прочитать строку, отправить ее немедленно через printStream клиенту, который должен его распечатать, а затем ждать еще одной строки с сервера.Java PrintStream немедленно для выводаStream со сканером и контуром
Мой клиент продолжает застревать после печати первого сообщения и только возвращает null после этого. Думаю, я не должен вызывать printStream.close() в Server.java, но сообщение не будет передано, пока я его не закрою. printSteam.flush, похоже, ничего не делает.
Соответствующий код:
Server.java
ServerSocket serverSocket = new ServerSocket(1234);
Socket connectionSocket = serverSocket.accept();
OutputStream outputStream = connectionSocket.getOutputStream();
Scanner sc = new Scanner(System.in);
while(true) {
System.out.print("Pass me a message: ");
String input = sc.nextLine();
final PrintStream printStream = new PrintStream(outputStream);
printStream.print(input);
printStream.flush();
printStream.close();
}
Client.java
Socket connectionSocket = new Socket("localhost", 1234);
InputStream inputStream = connectionSocket.getInputStream();
String result = "";
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(inputStream));
while (true) {
result = inFromServer.readLine();
System.out.println("Message: "+result);
}
Спасибо за вашу помощь!
Что такое 'outputStream'? – shmosel
Его нормальный OutputSteam. Я обновил фрагмент. – JoJota