@MuffinLover

Вопрос по сокетам Java? Как быть грамотно?

Делаю чат на сокетах, использую с двух сторон по два треда на каждого клиента
Инпут, аутпут, но не суть
Хочу отображать список условно пользователей при клике на кнопку
но я вот задумался о чём
Вот пользотватель отправляет запрос на сервер и ждет список пользователей
А ему в ответ приходит в этой функции не список пользователей, а ивент на новое сообщение
Как это вообще грамотно организовать? Я запутался
  • Вопрос задан
  • 95 просмотров
Решения вопроса 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
0x12,0x13,0x13,0x13,0x13,0x14,0x14,0x14,0x14

0x12 - команда
0х13 - длина пакета
0х14 - тело пакета

клиент подключается к серверу отправляя команду 0х01
сервер отзывается ответом 0х02 где в теле пакета список каналов
клиент отправляет 0х03 с указанием комнаты, получив ответ от сервера со списком пользователей
он переходит в прослушивание.

Другой клиент отправляет пакет с сообщением. Сервер его слышит. Перебирает всех в комнате и кидает им сообщение
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Valens254
@Valens254
Разработчик программного обеспечения
Если использовать чистые сокеты - то тут надо делать свой протокол (не обязательно).
Как пример:
Пакет:
{
4 байта - размер (нужен для определения границ пакета)
2 байта - тип
N байт - тело запроса/ответа
}
тогда вычитав пакет, по типу (2 байта - тип) можно понять что это за пакет и что в нём лежит.

П.С.
Ещё может помочь какой-нибудь специальный символ или комбинация символов, чтобы определять начало пакета
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы