Текущий архив: 2007.06.24;
Скачать: CL | DM;
Вниз
Пинг, TIdIcmpClient, except. Найти похожие ветки
← →
vegarulez © (2007-05-27 07:00) [0]Доброго времени суток мастерам!
У меня такая проблемка, подскажите как её можно решить.
У меня есть приложение, в котором допустим пингуется ya.ru каждые 30 секунд, для проверки, есть инет или нет, для этого использую TIdIcmpClient. И всё бы ничего но столкнулся с такой проблемкой, когда вообще нет соединения с инетом (т.е. нет сети, или отрублен модем), то выходит except сокет еррор, так вот чтобы избавится от этой месаги, вставил блок except. Но проблема в том что, когда вообще нет соединения, то при пинге, приложение виснет на 1-2 секунды, и потом только переходит на except.
Вопрос, как избавится от завсиания?
ИМХО: Сделать эту обработку в отдельном потоке? Ну чтобы приложение не висло...
Подскажите как это сделать... (не работал с потоками)
И сам except - криво сделан, подскажите как правильнее...
// тут пока без таймера- на кнопку забиндил, для отладкиprocedure TfrmPing.btnPingClick(Sender: TObject);
var
i: integer;
begin
ping_en:=0;
ping_dis:=0;
ICMP.OnReply := ICMPReply;
ICMP.ReceiveTimeout := 1000;
btnPing.Enabled := False;
try
ICMP.Host := edtHost.Text;
While i <> 5 do
begin
try
Begin
ICMP.Ping;
Application.ProcessMessages;
End;
except on E:Exception do
i:=4;
end;
i:=i+1;
end;
finally btnPing.Enabled := True;
end;
end;
← →
vegarulez © (2007-05-27 07:10) [1]// сверху немного неправильный код...
procedure TfrmPing.btnPingClick(Sender: TObject);
var
i: integer;
begin
i:=0;
ping_en:=0;
ping_dis:=0;
ICMP.OnReply := ICMPReply;
ICMP.ReceiveTimeout := 1000;
btnPing.Enabled := False;
try
ICMP.Host := edtHost.Text;
While i < 4 do
begin
try
Begin
ICMP.Ping;
Application.ProcessMessages;
End;
except on E:Exception do
i:=4;
end;
i:=i+1;
end;
finally btnPing.Enabled := True;
end;
end;
← →
Anatoly Podgoretsky © (2007-05-27 10:17) [2]> vegarulez (27.05.2007 07:10:01) [1]
while не нужен, лучше for, а except лучше так except exit end;
← →
vegarulez © (2007-05-29 21:16) [3]Анатолий, я ещё пару вопросов про Инди хотел у вас спросить, как у "крестного отца" индейцев... )
У вас есть е мыл или ася?..
мой емыл vegarulez[СОБАКА]ngs.ru...
напишите ваши контакты, как с вами можно связаться...
Жду письма ;)
← →
Anatoly Podgoretsky © (2007-05-29 21:20) [4]> vegarulez (29.05.2007 21:16:03) [3]
Все есть и все не доступно.
А индейцем я смог пробыть только 7 дней,
лучший индеец - мертвый индеец.
← →
vegarulez © (2007-05-29 21:40) [5]:(
но всё же...
хочется поговорить с Гуру...
Страницы: 1 вся ветка
Текущий архив: 2007.06.24;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.037 c