我想循环扫描仪读取一行,通过一个printStream立即发送到客户谁应该打印它,然后等待从服务器的另一行。爪哇PrintStream立即outputStream与扫描仪和循环
我的客户端在打印第一条消息后一直卡住,之后只返回null。我想我不应该在Server.java中调用printStream.close(),但是直到关闭它才会传输消息。 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