![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Зависает gethostbyaddr при запущенной аське что делать? [D5, Win95/98]
MegaVolt © (2006-03-24 14:36:00)Добрый день.
Столкнулся с такой проблемой:
При запущенной аське зависает gethostbyaddr в моей проге.
С чем это может быть связано? Например может ли аська менять какие либо параметры таймаутов или ещё что.
И как сделать чтобы всё работало?
Rouse_ (2006-03-28 10:22:00) [21]Вот скорее всего на этом у тебя и виснет ибо не обьявлен lpProvider.
Код определения имени провайдера:
function TMainForm.GetProvider(const CompName: String): String;
var
Buffer: array [0..255] of Char;
Size: DWORD;
begin
Size := SizeOf(Buffer);
if WNetGetProviderName(WNNC_NET_LANMAN, @Buffer, Size) <> NO_ERROR then
Result := 'absent'
else
Result := String(Buffer);
end;
MegaVolt (2006-03-27 19:00:00) [22]>Что такое InvertIP(ADDR);
Моя функция которая переставляет порядок следования байт
Обнаружил ещё одну особенность.
Если оставить отну gethostbyaddr то всё пашет хорошо. Если добавить в коде ещё и подключение компа
WNetAddConnection2
WNetCancelConnection2
То начинает виснуть :(
Код такой:
var
temp:TNetResource;
with temp do
begin
dwType:= RESOURCETYPE_DISK;
lpLocalName:= nil;
lpRemoteName :=PChar('\\'+s);
lpProvider:='';
end;
j:=WNetAddConnection2(temp,nil,nil,0); // Подключить компутер
...
WNetCancelConnection2(temp.lpRemoteName,0,false);
Т.е. получается что вызов этих функций как то сказывается на последующих вызовах gethostbyaddr
Rouse_ (2006-03-27 17:40:00) [23]Что такое InvertIP(ADDR);?
MegaVolt (2006-03-27 16:58:00) [24]Короче виснет вот этот код
function GetHostByIP(ADDR: cardinal;OsNT:boolean):string; // Определение имени компьютера по IP адресу
var HOST: PHostEnt;
begin
ADDR:=InvertIP(ADDR);
HOST:=gethostbyaddr(@ADDR,4,AF_INET);
if HOST <> nil
then
begin
SetLength(Result,Length(Host.h_name));
if OsNT
then Result:=Host.h_name
else OemToChar(Host.h_name,@Result[1]);
end
else result:='';
end;
MegaVolt (2006-03-27 10:45:00) [25]>делай демо пример который у тебя стабильно виснет
Он виснет достаточно редко но при запущенной Аське на одном из 300 компов зависает.
При незапущенной нормально проходит всё что положено.
Причём есть зависимость от чего то ещё. Т.к. иногда и при аське не виснет :(
Если удастся локализовать баг выложу код.
Rouse_ (2006-03-26 00:32:00) [26]Мдя... Я же тебе разьяснял принцип данного действия в привате. Так и не получилось? Давай - делай демо пример который у тебя стабильно виснет и кидай сюда... Будем разбираться.
MegaVolt (2006-03-24 16:42:00) [27]>ЭТО еще куда ?)
Если настройки которые делает аська глобальные то моя программа автоматом их использует.
Сергей М. (2006-03-24 16:24:00) [28]
> Я же и написал ICQ версии 2002а произведён ICQ Inc
ГДЕ в первоначальном вопросе это фигурирует ?
НИгде.
Цитирую тебя:
> При запущенной аське
Да фих тебя знает, что ты имешь ввиду при этом под выражением "заспущенная аська") ..
> при запущенной аське пользуюсь её настройками
ЭТО еще куда ?)
MegaVolt (2006-03-24 16:03:00) [29]>Накой ему это надо, спрашивается ?
Например для своей работы аська допускает большие задержки ответа из сети поэтому она настраивает таймаут на то значение которое её нужно. Я же никаких таймаутов не настраиваю и поэтому при запущенной аське пользуюсь её настройками и возможно gethostbyaddr не зависает а просто ждёт очень большой таймаут.
MegaVolt (2006-03-24 15:32:00) [30]>Хм .. Произнести фразу "ICQ-клиент такой-то версии разработки фирмы Мирабилис" - это , видать, сложно ..
Я же и написал ICQ версии 2002а произведён ICQ Inc
>Думаю, проблема в чем-то другом
Какие есть идеи? Зависимасть чёткая и стабильная.
Сергей М. (2006-03-24 15:17:00) [31]
> MegaVolt © (24.03.06 15:03) [2]
Хм .. Произнести фразу "ICQ-клиент такой-то версии разработки фирмы Мирабилис" - это , видать, сложно ..
> может ли аська менять какие либо параметры таймаутов или
> ещё что
Не думаю.
Накой ему это надо, спрашивается ?
Думаю, проблема в чем-то другом
MegaVolt (2006-03-24 15:03:00) [32]>Кто такая "запущенная аська" ? В лицо ?
ICQ Version 2002а
Build #3727
Сергей М. (2006-03-24 14:59:00) [33]
> запущенной аське
Кто такая "запущенная аська" ? В лицо ?