Я нахожусь в процессе написания клиента и сервера Java, и они оба правильно разговаривают друг с другом.Однако в настоящий момент клиент должен всегда отправлять сообщение на сервер, прежде чем он сможет его получить, но я хочу, чтобы сервер мог отправлять сообщение без запроса его клиентом.
В AS3,мой основной язык, я бы добавил прослушиватель событий в сокет и обработал данные таким образом - но я не могу понять, как бы я это сделал в Java.
В настоящее время мой клиент имеет этокод в нем:
public String send(String message) {
out.println(message);
try {
return in.readLine();
} catch (IOException ex) {
return "";
}
}
В основном я вызываю его, передавая свое сообщение, и оно возвращает ответ сервера.Вместо того чтобы делать это, я хочу отправить туда сообщение, как показано ниже, и получить ответ в другом месте (слушатель события).
public void send(String message) {
out.println(message);
}
Поскольку я не мог понять, как слушатель событиябудет работать, я подумал об использовании отдельного потока для запуска while(true){in.readLine;}
, но я хочу избежать этого, если это вообще возможно;Я не слишком удобен с потоками, и я хочу сделать его максимально простым.