Как ограничить копии приложения в локальной сети
От: Аноним  
Дата: 17.01.07 20:34
Оценка:
Всем доброго времени суток!

Помогите, пожалуйста, решить вопрос как ограничить количество запущенных копий приложения в локальной сети?
Либо подскажите в каком направлении двигаться?
Re: Как ограничить копии приложения в локальной сети
От: kostya.misura  
Дата: 17.01.07 21:10
Оценка: -2
Здравствуйте, Аноним, Вы писали:

Process.GetProcessesByName("...").Length?
Re[2]: Как ограничить копии приложения в локальной сети
От: Аноним  
Дата: 18.01.07 06:33
Оценка:
Здравствуйте, kostya.misura, Вы писали:

KM>Здравствуйте, Аноним, Вы писали:


KM>
KM>Process.GetProcessesByName("...").Length?
KM>




Спасибо за ответ!
Маленькое уточнение, а разве в этом случае получишь количество копий запускаемого процесса в сети?
или это только для локальной машины?
Re: Как ограничить копии приложения в локальной сети
От: Alex Warm Россия  
Дата: 18.01.07 12:02
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Помогите, пожалуйста, решить вопрос как ограничить количество запущенных копий приложения в локальной сети?

А>Либо подскажите в каком направлении двигаться?

Регистрировать в NetBios и искать по имени???
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Как ограничить копии приложения в локальной сети
От: kostya.misura  
Дата: 18.01.07 12:31
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Маленькое уточнение, а разве в этом случае получишь количество копий запускаемого процесса в сети?

А>или это только для локальной машины?

Process.GetProcessesByName (String)
Creates an array of new Process components and associates them with all the process resources on the local computer that share the specified process name.
Re: Как ограничить копии приложения в локальной сети
От: Pavel M. Россия  
Дата: 18.01.07 12:53
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Всем доброго времени суток!


А>Помогите, пожалуйста, решить вопрос как ограничить количество запущенных копий приложения в локальной сети?

А>Либо подскажите в каком направлении двигаться?

никогда не реализововал на .НЕТ, но думаю, что идея проста — посылать при старте бродкасты на порт своего приложения с некоторой инфой, допустим серийным номером или еще чем-нибудь и ждать ответ. Если нашлось приложение с такими же данными, пусть ответит и мы вырубаемся. Лингво подобно делает.
--------------------------
less think — do more
Re[2]: Как ограничить копии приложения в локальной сети
От: Аноним  
Дата: 18.01.07 17:04
Оценка:
Здравствуйте, Pavel M., Вы писали:

PM>Здравствуйте, Аноним, Вы писали:


А>>Всем доброго времени суток!


А>>Помогите, пожалуйста, решить вопрос как ограничить количество запущенных копий приложения в локальной сети?

А>>Либо подскажите в каком направлении двигаться?

PM>никогда не реализововал на .НЕТ, но думаю, что идея проста — посылать при старте бродкасты на порт своего приложения с некоторой инфой, допустим серийным номером или еще чем-нибудь и ждать ответ. Если нашлось приложение с такими же данными, пусть ответит и мы вырубаемся. Лингво подобно делает.


И я согласен Стать самим себе сервисом и клиентом (через ремотинг или WCF) — нашли себя — вырубать обе копии.
Re[2]: Как ограничить копии приложения в локальной сети
От: GlebZ Россия  
Дата: 18.01.07 17:26
Оценка:
Здравствуйте, Pavel M., Вы писали:

PM>никогда не реализововал на .НЕТ, но думаю, что идея проста — посылать при старте бродкасты на порт своего приложения с некоторой инфой, допустим серийным номером или еще чем-нибудь и ждать ответ. Если нашлось приложение с такими же данными, пусть ответит и мы вырубаемся. Лингво подобно делает.

В момент запуска Linvo поставь галку в WINS Disable NetBios over TCP/IP, и будет тебе счастье. Ни фига ничего не проверяется.
PS. Но я этого не говорил.
Re: Как ограничить копии приложения в локальной сети
От: ksg71 Германия  
Дата: 19.01.07 08:18
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Всем доброго времени суток!


А>Помогите, пожалуйста, решить вопрос как ограничить количество запущенных копий приложения в локальной сети?

А>Либо подскажите в каком направлении двигаться?


Писать сервер, при старте приложение коннектится с сервером, смотрит сколько копий запущено, если можно регистрируется и стартует.
После завершения работы "дерегистрируется". Если сервер писать лень, можно использовать какой-нибудь MS SQL или другой сервер БД.
Das Reich der Freiheit beginnt da, wo die Arbeit aufhört. (c) Karl Marx
Re: Как ограничить копии приложения в локальной сети
От: NightBlade Россия  
Дата: 19.01.07 08:53
Оценка:
А>Помогите, пожалуйста, решить вопрос как ограничить количество запущенных копий приложения в локальной сети?
А>Либо подскажите в каком направлении двигаться?

как делают ключи типа HASP:
на одной из машин ставят ключ, драйвер ключа и сервис. в ключе прописано, сколько клиентов может быть подключено, драйвер — мостик между сервисом и железом ключа. сервис вешается на сокет и слушает. клиент при запуске кидает бродкастный UDP пакет и ищет серверы ключей (их может быть несколько в сети, хотя, обычно, один). они отвечают, сколько клиентов еще могут "держать". клиент цепляется к первому у которого это значение не ноль, сервер ключа уменьшает счетчик. созданное TCP соединение можно проверяеть время от времени, на случай аварийного завершения клиента.
если не будет аппаратного ключа ( а скорее всего не будет), то достаточно одного сервиса, в котором будет жестко или в настройках прописано, сколько копий можно запускать.

если нет возможности использовать такую схему (не предусмотрена установка сервисного приложения), то можно использовать другую схему:
1. твое приложение при запуске отправляет бродкаст на который отвечают приложения уже запущенные
2. если нет ответа, то эта копия приложения назначает себя сервером, если есть — цепляется к существующему серверу
3. сервер, в общем, функционирует по схеме HASPа
4. если сервер должен завершиться раньше, чем остальные копии, то он перед завершением назначает сервером одну из оставшихся копий, все остальные копии получают об этом уведомление, и переконнекчиваются к новому серверу

естественно, тебе придется разработать свой протокол (простенький, конечно), который позволит все это сделать. пакеты можно начинать с фиксированной сигнатуры, например GUIDа. назначить несколько портов на случай, если другие программы уже будут использовать нужный тебе порт, и при запуске кидать бродкаст на эти порты по очереди, до ожидаемого ответа
Все вопросы на nightblade@inbox.ru
Re[2]: Как ограничить копии приложения в локальной сети
От: Pavel M. Россия  
Дата: 19.01.07 09:03
Оценка:
Здравствуйте, NightBlade, Вы писали:

А>>Помогите, пожалуйста, решить вопрос как ограничить количество запущенных копий приложения в локальной сети?

А>>Либо подскажите в каком направлении двигаться?


NB>естественно, тебе придется разработать свой протокол (простенький, конечно), который позволит все это сделать. пакеты можно начинать с фиксированной сигнатуры, например GUIDа. назначить несколько портов на случай, если другие программы уже будут использовать нужный тебе порт, и при запуске кидать бродкаст на эти порты по очереди, до ожидаемого ответа


необходимо еще экстренные завершения продумат, например, холодную перезагрузку
--------------------------
less think — do more
Re[3]: Как ограничить копии приложения в локальной сети
От: Аноним  
Дата: 19.01.07 09:32
Оценка:
Здравствуйте, Pavel M., Вы писали:

PM>необходимо еще экстренные завершения продумат, например, холодную перезагрузку


Кому-то сильно не поздоровится
Re[3]: Как ограничить копии приложения в локальной сети
От: kostya.misura  
Дата: 19.01.07 14:25
Оценка:
Здравствуйте, Аноним.

Сейчас вчитался в исходное сообщение. Посыпаю голову пеплом .
Re: Как ограничить копии приложения в локальной сети
От: Lloyd Россия  
Дата: 19.01.07 14:28
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Помогите, пожалуйста, решить вопрос как ограничить количество запущенных копий приложения в локальной сети?

А>Либо подскажите в каком направлении двигаться?

Можно попробовать еще вот так: Re: Проверка запуска 1-й копии сервера ;)
Автор: Lloyd
Дата: 14.01.07
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Как ограничить копии приложения в локальной сети
От: Аноним  
Дата: 17.01.07 20:44
Оценка:
клиент/сервер.
клиент при запуске дергает сервер, тот создает для него учетную запись... Если количество учетных записей больще Х -- клиент получает команду закрыться...


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.