|
63 / 63 / 15
Регистрация: 20.08.2014
Сообщений: 593
|
|
Многопточное клиент-серверное приложение12.06.2015, 17:09. Показов 1655. Ответов 6
Метки нет (Все метки)
Добрый день. Собственно задача такая:
Кликните здесь для просмотра всего текста
Написать консольное клиент-серверное приложение, реализующее функцию словаря. Словарь должен находиться на сервере и находится в памяти в единственном экземпляре. Таким образом серверное приложение будет иметь один общий словарь для всех клиентов-пользователей. Каждое слово в словаре может иметь несколько значений, но значения не конкретного слова не должны повторятся. Например слово 'man' может иметь значения 'человек' и 'мужчина', но не может иметь значения 'мужчина' и 'мужчина'. В случае если искомого слова в словаре не содержится, клиентское приложение должно сообщить об этом. Сервер должен обрабатывать каждое клиентское соединение в отдельном потоке, т.е. сразу же после подключения очередного клиента сервер тут же должен быть готов принять следующее подключение. Отсюда следует, что необходимо так же позаботиться об одновременном доступе потоков к одному словарю.
Реализация клиент-серверного протокола В качестве реализации протокола возможен любой из вариантов: 1. свой протокол 2. XML-RPC (библиотека Apache XML-RPC) 3. сериализация объектов (классы ObjectOutputStream, ObjectInputStream) Ну понятно, что словарь мы завернем в синглтон, он сам просится. А вот как с многопоточностью быть? Я не совсем понимаю. Нет, ну понятно, что будет использован ServerSocket. Но вот даст ли он гарантию одновременного доступа? И как быть с rw-блокировками? В общем вопросов много, ответов мало. На плюсах все было бы на порядок проще. А здесь просто не знаю какие механизмы выбрать, чтобы грамотно реализовать решение. Добавлено через 3 минуты Посоветуйте пожалуйста с чего начать. Словарь я уже написал. Использовал множество для обеспечения уникальности значений. С клиентом тоже проблем нет. Там три строчки кода. А вот с сервером нужен совет опытных людей.
0
|
|
| 12.06.2015, 17:09 | |
|
Ответы с готовыми решениями:
6
Клиент-серверное приложение Простое клиент-серверное игровое приложение Клиент-серверное взамодействие |
|
Автоматизируй это!
|
|
| 12.06.2015, 17:33 | |
|
1) понятно что серверсокет. Гарантию даст, при аксепте сокета (новый клиент) сразу создаешь новый поток
2) рв блокировки не понадобятся если синхронизируешь свой словарь. Пока один поток с ним работает то второй и последующие ждут. 3) если для словаря юзаешь коллекцию то ее нужно сделать синхронизированной. 4) так как на вход и выход будут простые текстовые значения, то советую юзать ПринтВрайтер и Сканнер для стримов -и проще и ...проще
1
|
|
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 12.06.2015, 17:59 | |
|
зачем синхронизировать доступ? Я не вижу в задании поддержки изменения словаря с клиента. То есть доступ только для чтения и тогда проблем с синхронизацией нет
1
|
|
|
63 / 63 / 15
Регистрация: 20.08.2014
Сообщений: 593
|
||
| 13.06.2015, 07:09 [ТС] | ||
|
0
|
||
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 13.06.2015, 13:43 | |
Сообщение было отмечено Pingvinoff как решение
Решение
Pingvinoff, используйте коллекции из пакета concurrent. Там синхронизация уже поддерживается.
1
|
|
| 13.06.2015, 13:43 | |
|
Помогаю со студенческими работами здесь
7
Клиент-серверное приложение Клиент серверное приложение на java Клиент-серверное приложение Шилдт Клиент-серверное приложение. Протокол взаимодействия Клиент-серверное приложение отправка сообщений Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во
всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
|