Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Взаимодействие программ запущенных на разных машинах [D6, IB6.x]


bobr12 ©   (2002-09-23 10:19:00) 

Ситуация такая: сеть из 6 компьютеров на одной запущен IB-сервер, на 5 остальных одна и та же программа. При входе в программу пользователю необходимо идентифицировать себя - у каждого человека свой код. Не хотелось бы, чтобы один пользователь запускал программу и идентифицировал себя на разных машинах. Как можно сделать чтобы пользователю это не удавалось?
Я попробовал сделать так: когда пользователь идентифицирует себя - в БД IB появляется запись о том, что этот пользователь уже ведет работу, когда он выходит из программы - эта запись удаляется. Но тогда возникает такая проблема, а если выход произойдет некорректно (сбой питания или еще что) - тогда в БД останется запись, что он продолжает работу - и придется эту запись удалять вручную.
Кто-нибудь может что-нибудь посоветовать?


BlackTiger   (2002-09-23 11:54:00) [1]

Ничего простого тут посоветовать нельзя.
В принципе это делается так: есть сервер, на нем крутится отдельный процесс, который следит за текущими сейдинениями, грубо говоря периодически "пингует" каждое зарегестрированное соединение. Клиентское приложение регестрируется как соединение и работает. А сервер следит за активностью и, если на том конце не отзываются, то соединение разрывается.

Все более простое - нестабильный геморрой, который будет работать только при соблюдении большого числа "если".

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

Успехов

З.Ы.: Подумай, а оно тебе надо?


Andriano   (2002-09-23 10:33:00) [2]

Есть возможность (код я где-то встречал) получать список активных пользователей. При запуске смотришь есть ли этот пользователь, если есть - сообщаешь, выходишь.
А ещё - кажется в IB можно накладывать ограничение на аккаунт для пользователя.


Наверх

Титульная страница Поиск, карта сайта Написать письмо