2016-05-05 5 views
0

Я один сервер и несколько клиентов по потокам. Клиент (ы) отправляет свое сообщение на сервер. Я разработал, как заставить сервер отправить сообщение обратно клиенту, как эхо-систему. Если у меня есть два клиента, я хочу, чтобы они отправили свое сообщение на сервер, и сервер должен отправить его клиенту, который не отправил сообщение, то есть другому клиенту. Как я могу отправить сообщение обратно всем клиентам, кроме тех, которые отправляют сообщение?Java-сокеты, сервер отправляет сообщение нескольким клиентам

ответ

0

Когда сообщение приходит, определите, с каким идентификатором идентификатора пользователя/другого идентификатора связано входящее сообщение. Затем повторно передайте все другие сокеты, но не включите Socket, связанный с идентификатором, который отправил сообщение

0

Составьте на стороне сервера список со всеми клиентами ... каждый раз, когда получен новый SMS-сообщение, итерация перечислите и отправьте сообщение с помощью порта гнезда как id ...

0

Я недавно написал программу чата. Я сделал это, у меня был класс ClientHandler, который обрабатывает соединение для каждого отдельного клиента.

Внутри ClientHandler У меня был HashMap. Я добавил каждого клиента, который подключился к HashMap, причем Key является client id. Я использовал UUID, а не int для client id.

Внутри этого класса обработчика у меня был метод sendMessage(String str). В рамках этого метода цикл for-each, который проходит через каждый объект ClientHandler, проверяет values внутри HashMap. Внутри этого цикла for-each у меня есть оператор if, который проверяет, записываете ли вы объект ClientHandler с идентификатором this. Если проверка вернет false, вы продолжаете и пишите сообщение на PrintWriter, и сообщение не отправит клиенту письмо с сообщением..

Это работало для me. Может не работать для вы.

Смежные вопросы