0
私はサーバーとクライアントを持っています。(Java)ソケットのBufferedReaderは一度に1行しか必要とせず、次の行を受け取る前にクライアント入力が必要です
私の問題は、クライアントが一度にBufferedReader in
から1行しか受信できないことです。次の行を受け取るには、クライアントが応答する必要があります。一度にすべての入力をクライアントに受信させるにはどうすればよいですか?たとえば、複数行の入力。
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表示するには完全な複数行のメッセージが必要です –