Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2011, 12:09   #1
the_deer_one
Участник клуба
 
Аватар для the_deer_one
 
Регистрация: 04.04.2010
Сообщений: 1,554
Вопрос статус

Есть какое-то количество равноправных приложений в сети. У всех есть список адресов хостов на которых могут быть запущены эти приложения.

Как бы им друг-друга половчее оповещать о своём присутствии или отсутствии в сети? Причём не используя для этого заранее предопределённый сервер. Я подозреваю, что тупо рассылать от каждого приложения свой статус всем приложениям в списке не труъ?
the_deer_one вне форума Ответить с цитированием
Старый 14.06.2011, 09:09   #2
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

Цитата:
Я подозреваю, что тупо рассылать от каждого приложения свой статус всем приложениям в списке не труъ?
Может и не тру, но самый простой и надёжный вариант.

Цитата:
Причём не используя для этого заранее предопределённый сервер.
А в чём проблема сделать одно из приложений этим самым сервером. Приложения "соединяются" по простой схеме "каждый-каждому", затем по определённому алгоритму одно из приложений выбирается "сервером". После выбора "сервера" синхронизация идёт через него, пока он не "отвалится". Отвалился - опять выборы и тд...
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 14.06.2011, 09:15   #3
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Выборы проводить по какому-нибудь глобально-уникальному идентификатору...
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 14.06.2011, 09:48   #4
the_deer_one
Участник клуба
 
Аватар для the_deer_one
 
Регистрация: 04.04.2010
Сообщений: 1,554
По умолчанию

Ага.
Значит можно назначить каждому приложению уровень приоритета. И при запуске каждое приложение снимает с себя полномочия сервера если находит в сети приложение с более высоким приоритетом. Приложение которое не сможет найти помимо себя приложение с более высоким приоритетом рассылает всем приложениям сигнал, что типа оно тут босс и все серверные запросы через него.

Да ну нафиг, ужас какой-то. Как-то ненадёжно и запарно выглядит. Уж лучше нормальный авторитарный сервер, вместо этой демократии.
the_deer_one вне форума Ответить с цитированием
Старый 14.06.2011, 09:52   #5
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

Цитата:
Причём не используя для этого заранее предопределённый сервер.
Цитата:
Уж лучше нормальный авторитарный сервер, вместо этой демократии.
Когнитивный диссонанс однако
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 14.06.2011, 10:02   #6
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от the_deer_one Посмотреть сообщение
Приложение которое не сможет найти помимо себя приложение с более высоким приоритетом рассылает всем приложениям сигнал, что типа оно тут босс и все серверные запросы через него.
Если правильно организовать все дело, например, каждый сервер сопоставит свой IP и идентификатор и разошлет его каждому участнику, то никому больше сообщать о том, кто здесь правит бал нет нужды - и так догадаются. Более того, даже догадаются кто будет заместителем, в случае если с главным сервером случится какая-то аномальная вещь... И без паники будут работать дальше, даже если участников останется двое...

Цитата:
Да ну нафиг, ужас какой-то. Как-то ненадёжно и запарно выглядит. Уж лучше нормальный авторитарный сервер, вместо этой демократии.
Здесь все просто, как и с демократией в РФ, достаточно каждому предъявить свой номер...
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 14.06.2011, 11:15   #7
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

если все приложения работают в локалке, то юзать бродкаст (для одной подсети) или мультикаст для всех подсетей локалной сети (в Internet работать не будет).
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 14.06.2011, 11:31   #8
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от the_deer_one Посмотреть сообщение
Я подозреваю, что тупо рассылать от каждого приложения свой статус всем приложениям в списке не труъ?
Конечно try. Это будет работать, если приложений не больше нескольких десятков. Если их будет несколько тысяч, будут жуткие тормоза.
Цитата:
Сообщение от the_deer_one Посмотреть сообщение
Ага.
Значит можно назначить каждому приложению уровень приоритета. И при запуске каждое приложение снимает с себя полномочия сервера если находит в сети приложение с более высоким приоритетом. Приложение которое не сможет найти помимо себя приложение с более высоким приоритетом рассылает всем приложениям сигнал, что типа оно тут босс и все серверные запросы через него.

Да ну нафиг, ужас какой-то. Как-то ненадёжно и запарно выглядит. Уж лучше нормальный авторитарный сервер, вместо этой демократии.
Это не демократия, а анархия.
Нахрена такие сложности.
Кто первым включился, - тот и босс. До тех пор, пока не выключится. Приложения потерявшие "босса", глосуют по приоритетам. Установленный однажды приоритет, сохраняется до выключения нового "босса" и т.д.
Совокупность демократии и единоначалия.
Такая схема сократит время, которое приложения будут затрачивать на поиски приоритетных серверов, каждый раз, после входа и выхода из сети менее приоритетных.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 14.06.2011 в 11:37.
Smitt&Wesson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Статус Вконтакте grom4ik7 PHP 2 22.03.2011 23:10
Статус TSocketServer Mifig Работа с сетью в Delphi 2 31.10.2010 19:59
Статус страницы! nikolai_P PHP 6 17.09.2009 10:03