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

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

Зависает gethostbyaddr при запущенной аське что делать? [D5, Win95/98]


Страницы:   1 2

MegaVolt ©   (2006-03-24 14:36:00) 

Добрый день.
Столкнулся с такой проблемой:
При запущенной аське зависает gethostbyaddr в моей проге.
С чем это может быть связано? Например может ли аська менять какие либо параметры таймаутов или ещё что.
И как сделать чтобы всё работало?


MegaVolt   (2006-03-31 14:36:00) [1]

Смысл в том чтобы найти где у бага ноги растут. А реально после подключения компа ещё его сканирование есть. Но оно время отнимает а пока ещё не глючило. Поэтому и выключено


Сергей М.   (2006-03-31 13:32:00) [2]

А в чем вообще тайный смысл подключать ресурс и тут же его отключать ?


MegaVolt   (2006-03-31 13:15:00) [3]

>А отладчик на что ?

А как отловить отладчиком зависание некой функции в многопоточном приложении если вероятность зависания 1/500?


Сергей М.   (2006-03-31 12:32:00) [4]


> Точно не знаю


А отладчик на что ?


> Это существенно изменит логику работы приложения


Ну хотя бы ради эксперимента ..


MegaVolt   (2006-03-31 11:37:00) [5]

>Ф-ция GetHostByAddr будучи вызванной совсем не возвращает управление или выполняется неоправданно долго ?

Точно не знаю. Но за время порядка часа она управление не вернула :(

>Может следует отказаться от блокирующей ф-ции в пользу ее асинхронной версии (WSAAsyncGetHostByAddr) ?

Это существенно изменит логику работы приложения. Да и сама функция без WNetAddConnection2;  WNetCancelConnection2; работает просто великолепно.


Сергей М.   (2006-03-31 11:23:00) [6]

А что собственно подразумевается под "зависает" ?

Ф-ция GetHostByAddr будучи вызванной совсем не возвращает управление или выполняется неоправданно долго ?

Может следует отказаться от блокирующей ф-ции в пользу ее асинхронной версии (WSAAsyncGetHostByAddr) ?


MegaVolt   (2006-03-31 11:15:00) [7]

>Думаю что Аська со своими "настройками" здесь совершенно ни при чем

Опыт говорит о другом. А что именно влиет определить сложно. Или кривая реализация чего то в аське мешающее работать другим прогам в сети. Или сама винда которая не тянет такую нагрузку. Хотя количеством потоков я пробовал играть. Резульат тот же.


Сергей М.   (2006-03-31 10:44:00) [8]

Думаю что Аська со своими "настройками" здесь совершенно ни при чем - дело происходит в Маздае (Маздай = win9x/Me), а маздайная реализация WNet-функциональности всегда славилась своей "глюкавостью".


MegaVolt   (2006-03-31 10:34:00) [9]

>И как этот код связан с "настройками аськи" ?

Если бы я знал :(

>К тому же ты утверждаешь, что поток виснет до sleep'a ..

Если при добавлении WNetAddConnection2;  WNetCancelConnection2; начинает виснуть GetHostByAddr; то логично предположить что виснет следующий поток а не текущий. Как это возможно понятия не имею. Возможно данные операции требуют некого времени для своего завершения. И если не дать им этого времени то GetHostByAddr; может зависнуть.

Но факт остаётся фактом. Глюк существенно уменьшился.


Сергей М.   (2006-03-31 08:26:00) [10]

И как этот код связан с "настройками аськи" ?
К тому же ты утверждаешь, что поток виснет доsleep'a ..


MegaVolt   (2006-03-30 18:38:00) [11]


Старт поток
Пинг
извлечь MAC
если Mac есть
 выполнить
   begin
      GetHostByAddr;
      WNetAddConnection2;
      WNetCancelConnection2;
   end;
Sleep(1000);
конец потока


Сергей М.   (2006-03-30 13:23:00) [12]


> Вставка в конце каждого потока


Что есть "конец потока" ?

Иллюстрируй в коде ..


MegaVolt   (2006-03-30 13:01:00) [13]

Вставка в конце каждого потока Sleep(1000); существенно улучшила ситуацию но окончательно проблему не сняла.


Сергей М.   (2006-03-29 10:35:00) [14]


> какая разница какой клиент?


Ну мало ли какой еще (кроме широкоизвестных) ты пользуешь ..


MegaVolt   (2006-03-29 10:25:00) [15]

>Мною таковые не замечены

Тогда какая разница какой клиент? ;)


Сергей М   (2006-03-28 18:53:00) [16]

Мною таковые не замечены


MegaVolt   (2006-03-28 16:51:00) [17]

Значит есть какие то глюки с этими клиентами?


Сергей М.   (2006-03-28 15:59:00) [18]


> зачем было знать версию Аськи?


Гдея спрашивал про "версию" ?!

Я спрашивал про  конкретного клиентаэтой сети) ... Коих на сей день существует несметное множество - Mirabilis ICQ Client, Miranda, Trillian, RAT &RQ и т.д. и т.п.


MegaVolt   (2006-03-28 15:34:00) [19]

Сергей М.
А зачем было знать версию Аськи? Есть какие то извесные глюки с другими версиями аськами?


MegaVolt   (2006-03-28 11:45:00) [20]

Определение имени провайдера не помогло.

Наблюдение:
Частота зависания с аськой и без аськи отличаются примерно раза в три. Без аськи один зависон на 1500 компов. С аськой один на 500.


Страницы:   1 2

Наверх

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