у меня такая ситуация:
2 клиента: c1, c2
1 сервер: s
Мне нужно отправить сообщение m от c1 до s, а затем мне нужно, чтобы s отправляло уведомление c2.
Я использую Java Sockets.
Код, который я имею, довольно прост, чтобы послать сообщение от c1 до s:
Сервер
try {
ServerSocket listener = new ServerSocket(9090);
System.out.println("Server ready to accept connections");
while (true) {
Socket socket = listener.accept();
try {
BufferedReader in =
new BufferedReader(
new InputStreamReader(socket.getInputStream()));
Scanner x = new Scanner(in);
System.out.println("Client has sent :");
while (x.hasNextLine()){
System.out.println(x.nextLine());
}
PrintWriter out =
new PrintWriter(socket.getOutputStream(), true);
out.println("OK");
out.flush();
} catch (Exception ex) {
System.out.println(ex.getLocalizedMessage());
}
finally
{
socket.close();
}
}
}catch (Exception ex){
System.out.println(ex.getLocalizedMessage());
}
Клиент
Socket s = null;
try {
s = new Socket("localhost", 9090);
} catch (IOException e) {
System.out.println(e.getLocalizedMessage());
}
try {
PrintWriter out =
new PrintWriter(s.getOutputStream(), true);
out.println("Random Text");
out.flush();
s.shutdownOutput();
//out.close();
} catch (IOException e) {
System.out.println(e.getLocalizedMessage());
}
BufferedReader input = null;
try {
input = new BufferedReader(new InputStreamReader(s.getInputStream()));
} catch (IOException e) {
System.out.println(e.getLocalizedMessage());
}
Scanner y = new Scanner(input);
String answer = "";
while (y.hasNextLine()) {
answer = answer.concat(y.nextLine());
}
System.out.println("Answer :");
System.out.println(answer);
System.out.println(answer);
Теперь, как я могу отредактировать мой код, чтобы сделать то, что я сказал?
Большое спасибо!