У меня есть сокет, уже объявленный как сокет:
serverAddr = InetAddress.getByName(this.ip);
socket = new Socket(serverAddr, port);
out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
однако следующее не работает. in.ready()
всегда возвращает false, и в случае удаления программа остановится на String message = in.readLine();
private void receive() {
try {
InputStreamReader isr = new InputStreamReader(socket.getInputStream());
System.out.println(isr.getEncoding());
BufferedReader in = new BufferedReader(isr);
if (in.ready()) {
String message = in.readLine();
if (message != null) {
if (listener != null) {
listener.receiveMessage(ip, message);
} else {
print("Client recieved: " + message);//
}
}
}
in.close();
} catch (Exception e) {
print("Error with input stream: " + e);
disconnect();
}
}
Как я могу решить это?
EDIT:
Вот так выглядит отправка в моем классе сервера:
out.println (сообщение);
out.flush ();
Это происходит в цикле всякий раз, когда я помещаю что-то в сообщение. выход закрыт после этого цикла.