Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.12;
Скачать: CL | DM;

Вниз

Время задержки (ping)   Найти похожие ветки 

 
Vetalich ©   (2005-11-03 15:37) [0]

Доброго времени суток...
Тут возникла вот такая проблема:
Когда пингуешь какой нить IP, если он есть (или компьютер включен), то состояние отображаеться быстро, а если нет идёт долгая задержка...
так вот как сделать эту задержку меньше или убрать вообще?
т.е если компьютер не отвечает сразу выдавать ответ, а не ждать это время...

Код используемый для пинга:

function IPAddrToName(IPAddr: string): string;
var
SockAddrIn: TSockAddrIn;
HostEnt: PHostEnt;
WSAData: TWSAData;
Retorno :integer;
begin
Retorno:=WSAStartup($101, WSAData);
if (Retorno <> 0) then
begin
Application.MessageBox("Can*t Load WinSockets","WSAStartup", MB_OK);
WSACleanup();
exit;
end;

SockAddrIn.sin_addr.s_addr := inet_addr(PChar(IPAddr));
HostEnt := gethostbyaddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET);
if HostEnt = nil then
begin
Form1.Label7.caption := "off-line";
exit;
end
else
begin
Form1.Label7.caption := "on-line";
end;
Result := StrPas(Hostent^.h_name)
end;


 
Digitman ©   (2005-11-03 15:42) [1]

вместо синхронной блокирующей ф-ции gethostbyaddr() использовать ее асинхронную неблокирующую версию в виде ф-ции WSAAsyncgethostbyaddr


 
Vetalich ©   (2005-11-03 15:58) [2]

Digitman, а можешь переделать мой код под эту функцию... пожалйста...
ведь простой заменой тут не обойдёшся...


 
Digitman ©   (2005-11-03 16:09) [3]


> Vetalich ©   (03.11.05 15:58) [2]


http://www.delphikingdom.com/asp/answer.asp?IDAnswer=30878

а эта ф-ция у тебя откуда взялась ?

надо понимать, не сам писал, а содрал откуда-то бездумно ?)


 
Vetalich ©   (2005-11-03 16:26) [4]


> а эта ф-ция у тебя откуда взялась ?
>
> надо понимать, не сам писал, а содрал откуда-то бездумно
> ?)

да нет не сдирал... друган подогнал...
я б у него спросил но он уехал...


> http://www.delphikingdom.com/asp/answer.asp?IDAnswer=30878

если честно я там ничего не понял... :)

а всётаки поможешь или нет?
мне от delphi надо то всего эту программу сделать и всё...
а его я не открывал уже более года...


 
Digitman ©   (2005-11-03 16:30) [5]


> а всётаки поможешь или нет?


т.е. написать за тебя программу ?


 
Vetalich ©   (2005-11-03 16:33) [6]

нет... вставить функцию WSAAsyncgethostbyaddr в мой код...


 
Digitman ©   (2005-11-03 16:46) [7]

это потребует полной переделки кода ... причем не твоего, как выяснилось) .. что, собственно, и есть ничто иное как "написать за тебя программу"

не стыдно ?


> если честно я там ничего не понял


ну и что толку, что я напишу тебе свой вариант использования ф-ции ?

при таком подходе в нем ты тоже нишута не поймешь)

лучше займись изучением справки к ф-ции ...

а что тебе там будет непонятно - милости просим : по каждому непонятному моменту ты получишь необходимые комментарии

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

ну а с "нахаляву"-подходом в программировании ты недолго продержишься)



Страницы: 1 вся ветка

Текущий архив: 2006.02.12;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.033 c
3-1134626810
DaNMaTeR
2005-12-15 09:06
2006.02.12
Запрос SQL к запросу созданному в ADO


2-1138285872
dera
2006-01-26 17:31
2006.02.12
Подскажите, как перекодировать сp866(DOS-кодировка) в WIN1251?


3-1134563319
Den47
2005-12-14 15:28
2006.02.12
Кто работал с TDBF?


15-1137856714
Странный малый
2006-01-21 18:18
2006.02.12
А что вы думаете про Гражданскую Оборону ?


15-1137692246
Piter
2006-01-19 20:37
2006.02.12
А правда, что украинцы очень любят сало?