![]() |
Модераторы: Akina |
![]() ![]() ![]() |
|
AHTUxPK |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 1.9.2011 Где: Пятигорск Репутация: нет Всего: нет |
Всё ещё продолжаю разработку программы для серверов CS, в той теме мы разобрались, как запустить программу и потом её мягко закрыть, теперь я хочу сделать отслеживание, работает ли запущенная программа, чтобы следить не упал ли какой-то из серверов. Сначала в голову пришла идея отслеживать просто по условию существует ли hwnd у программы. Для этого я сделал маленький код:
То есть таймер каждые несколько секунд (например 10) проверяет, есть ли pID (а если сервер запускался из программы, то pID есть) и определяет его hwnd, у мёртвого процесса определится 0, и вот тогда запускается заново сервер. Если консоль сервера закрыть, то всё отлично запускается. Но если консоль просто выдала ошибку или зависла, то hwnd у неё остаётся. После некоторых раздумий и переговорами с одним человеком, мы пришли к идеи отслеживать работает ли сервер по порту, по идее когда сервер зависает или падает - порт закрывается. Но как это осуществить программно? Нужно: при запуске сервера отследить какой он открыл порт (ну или у уже запущенного определить) и отслеживать, не закрылся ли порт, если закрылся - запустить сервер. Или подскажите, как ещё можно отследить не зависла ли программа? Заранее спасибо! UPD, как только создал тему, другой знакомый написал, что у зависшего сервера порт всё равно держится открытым, так что ищу другие идеи, как отслеживать, жива ли программа. Это сообщение отредактировал(а) AHTUxPK - 30.1.2012, 15:47 |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
При обращении клиента по порту сервер должен дать определённый ответ. Зависший сервер его не даст. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
AHTUxPK |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 1.9.2011 Где: Пятигорск Репутация: нет Всего: нет |
А не знаете ли какие-нибудь альтернативные способы узнать, не зависла ли программа? Не хочется почему-то связываться с портами и т.п.
|
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Достоверно - нет. Процесс можно утопить в суспензии - и для всех это будет вполне нормальный беспроблемный процесс... только он ни хрена не делает.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
AHTUxPK |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 1.9.2011 Где: Пятигорск Репутация: нет Всего: нет |
Нашёл я тут в инете сборник кс мониторингов для сайта, кто может из него вытащить кусочек кода, который отвечает за определение онлайн сервер или нет?
Вот он Это сообщение отредактировал(а) AHTUxPK - 13.2.2012, 10:26 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "VB6" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | VB6 | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |