InetAddress Address = InetAddress.getByName("172.24.3.154");
kkSocket = new Socket(Address, 2003);
out = new ObjectOutputStream(kkSocket.getOutputStream());
in = new ObjectInputStream(kkSocket.getInputStream());
public static <T> Object sendReceive(T obj) {
try {
out.writeObject(obj);
out.flush();
System.out.println("Client : " + obj.toString());
Object resp = in.readObject();
if (resp != null) {
System.out.println("Server : " + resp.toString());
}
return resp;
} catch (IOException ex) {
Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
это мой метод Клиента, которым я отправляю запрос на Сервер.
out = new ObjectOutputStream(socket.getOutputStream());
ObjectInputStream in = new ObjectInputStream(socket.getInputStream());
System.out.println("Server: S-a conectat :" + socket.getInetAddress());
Protocol protocol = new Protocol(server);
while (socket.isClosed() != true) {
Object response = protocol.processInput(in.readObject());
System.out.println("Server: message Received: " + getName());
if (response != null) {
out.writeObject(response);
out.flush();
} else {
out.writeObject(null);
out.flush();
}
}
это то, что делает мой сервер. И это тоже работает. Мой вопрос: Предоставляя эту настройку для сокетов, как я могу сделать отдельный слушатель для клиента, чтобы отправить в определенное время одно сообщение клиенту, в то время как клиент все еще функционирует нормально?
Я попытался создать новый поток для управления потоком ввода на стороне клиента, но приложение не запускается и просто застревает в методе выполнения потока
Thx.
РЕДАКТИРОВАТЬ:
То, что я делаю, это многопользовательское приложение с сокетами, использующее многопоточность. У меня есть приведенный выше код, и он работает для меня, для вызова метода «sendReceive» для отправки запроса на сервер, и он что-то возвращает. Что я я пытаюсь сделать, когда я получаю конкретный запрос, я хочу уведомить всех онлайн-клиентов. Я применил шаблон наблюдателя следующим образом: сервер является наблюдаемым, а потоки - наблюдателями. когда поступает конкретный запрос, я уведомляю все шаги, но я не могу t get each threat to send to the clients immediately a message because the client doesn
t слушать. Может быть, я поступаю с этим по неправильному пути. Может ли кто-нибудь помочь PLS?