Насколько понимаю, архитектуру сервера можно описать примерно так:
сервер "ловит" (или читает") новый сокет; один сокет = одно соединение = одна нить для его обработки.
Если сразу 2 уже авторизованных пользователя одновременно отправят сообщения на сервер, тогда для их обработки каждая нить вызовет метод сервера sendBroadcastMessage().
ВОПРОС: я правильно понимаю, что логично было бы сделать именно этот метод synchronized? Мы же сделали synchronized внутри методов send()(к которому, кстати, обращается sendBroadcastMessage) и receive() только потому, что сервер и пользователи сидят на одном компьютере, а не на реальном сервере?
Di
38 уровень
Не совсем понимаю одну деталь в архитектуре сервера
Обсуждается
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Сергеев ВикторMaster
8 января 2019, 00:16
не помню ни задания ни условия. Но synchronized имеет смысл использовать там где есть разделяемый ресурс и синхронизироваться по нему
0
Di
8 января 2019, 00:30
Вот об этом и вопрос. Мы synchronized'емся по объектам потов в классе Connection, потому что приложение учебное и сервер и клиент запускаются на одной машине?
0
Сергеев ВикторMaster
8 января 2019, 00:50
не помню ни задания ни условия. Выкладывайте код, там посмотрим
0