0
我有一个服务器和一个客户端。(Java)一个套接字的BufferedReader一次只需要一条线,在接收下一条线之前需要客户端输入
我的问题是,我的客户一次只能从BufferedReader in
接收一行。要接收下一行,客户必须回复。我如何让客户一次收到所有的输入?例如,多线输入。
try (
Socket socket = new Socket(hostName, portNumber); //Connect to server
PrintWriter out = new PrintWriter(socket.getOutputStream(), true); //The socket output stream sends an output to the server
BufferedReader in = new BufferedReader(
new InputStreamReader(socket.getInputStream())); //The socket input stream receives an output from the server
) {
BufferedReader stdIn =
new BufferedReader(new InputStreamReader(System.in)); //The BufferedReader allows the client's input to be iterated through
String fromServer,
fromUser;
while ((fromServer = in.readLine()) != null) { //while there is an input from the server
System.out.println("Server: " + fromServer); //Print the input
fromUser = stdIn.readLine(); //Receive a line of user input
if (fromUser != null) {
System.out.println("Client: " + fromUser);
out.println(fromUser); //Send it out to the server
}
}
} catch [...]
也许使用单独的线程?你有没有考虑尝试这个? –
你为什么在意?它会有什么不同? – EJP
@EJP我需要完整的多行消息才能出现 –