Я внедряю Client Runnable в отношениях клиент-сервер. По какой-то причине Клиент не хочет отправлять серверу сообщение с PrintWriter. Сообщение печатается нормально, когда я печатаю на стандартный вывод, но как только я помещаю его в PrintWriter, сервер никогда не получает его. Может кто-нибудь объяснить, почему это так?
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
public class BlockchainClientRunnable implements Runnable {
private String reply;
private int port;
private String host;
private String message;
public BlockchainClientRunnable(int serverNumber, String serverName, int portNumber, String message) {
this.host=serverName;
this.port=portNumber;
this.message=message;
this.reply = "Server" + serverNumber + ": " + serverName + " " + portNumber + "\n"; // header string
}
public void run() {
try {
Socket sock = new Socket(host,port);
InputStream input = sock.getInputStream();
OutputStream output = sock.getOutputStream();
BufferedReader inputReader = new BufferedReader(new InputStreamReader(input));
PrintWriter outWriter = new PrintWriter(output,true);
outWriter.print(message);
outWriter.flush();
String response = "";
String buffer = inputReader.readLine();
while(buffer != null) {
response = response + buffer;
buffer = inputReader.readLine();
}
inputReader.close();
outWriter.close();
output.close();
input.close();
sock.close();
}catch(IOException e){
e.printStackTrace();
}
}
public String getReply() {
return reply;
}
}