我正在玩套接字,但似乎有一个问题,缓冲阅读器在我输入空格后没有读取整个字符串(例如“hi there”,它只会打印“hi”)有没有其他人有这个问题前?
Server e = new Server();
e.start();
ServerSocket serverSocket = new ServerSocket(41021);
Socket socket = serverSocket.accept();
System.out.println("Server: (Network.Client) connected");
InputStreamReader inputStreamReader = new InputStreamReader(socket.getInputStream());
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
System.out.println("Client: " + bufferedReader.readLine());
serverSocket.close();
socket.close();
}
@Override
public void run() {
try {
Socket socket = new Socket("localhost", 41021);
while (socket.isConnected()) {
PrintWriter printWriter = new PrintWriter(socket.getOutputStream());
printWriter.println(new Scanner(System.in).next());
printWriter.flush();
}
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
我认为发生这种情况是因为printWriter.println(new Scanner(System.in).next());
您使用next();
而不是nextLine();
TrynextLine();
并注意我是否有效。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句