Вниз
Скачать: CL | DM;

Как ограничить по времени "замирание" программы   Найти похожие ветки 

← →
СержК   (2006-01-26 08:49) [0]

Мастера подскажите.

Я имею несколько удаленных рабочих станций. На этих уд. станциях есть папки в общем доступе. В моей программе происходит опрос этих папок на предмет появления в них файлов.

Перед тем как обрабатывать содержимое этих удаленных папок я пытаюсь проверить - есть ли связь с этими станциями. Ничего лучше не придумал как проверить папку на существование:
DirectoryExists(\\IP_адрес\папка) - все работает нормально.

Но возникают ситуации когда: временно пропадает сеть(используем услуги сотовиков), на том конце выключен компьютер, ... ситуаций думаю может возникнуть много (точки разбросаны на расстоянии от 10 до 200 километров).

В такой ситуации при выполнении (когда что-то пропало):
DirectoryExists(\\IP_адрес\папка) - программа ЗАДУМЫВАЕТСЯ довольно надолго, что очень некрасиво выглядит.

Вопрос: Как ограничить по времени "замирание" программы?
Подскажите кто может. Очень нужно!!!


← →
TUser ©   (2006-01-26 08:57) [1]

Вытащить все в отдельный поток. Лучше - свой поток для каждой раб. станции.


← →
СержК   (2006-01-26 09:03) [2]

Честно говоря с потоками никогда не работал.
Если можно пример - как его организовать, и как "прихлопнуть" при замирании программы допустим более 20 секунд.


← →
sniknik ©   (2006-01-26 09:09) [3]

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

p.s. сделай поиск по "ping программно" или чтото в этом роде ;).


← →
СержК   (2006-01-26 10:22) [4]

Люди а может кто-нибудь подскажет по поводу: "ping программно"?


← →
sniknik ©   (2006-01-26 10:55) [5]

..... нет слов.
http://www.google.ru/search?hl=ru&q=ping+%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE&btnG=%D0%9F%D0%BE% D0%B8%D1%81%D0%BA+%D0%B2+Google&lr=


← →
СержК   (2006-01-26 11:17) [6]

Открыл я эту ссылку - НЕ МОГУ РАЗОБРАТЬСЯ. В одном месте речь идет о VB и С++, в другом реализация аналога PrintScreen...

А в Helpe: procedure Ping(ABuffer: String = ""; SequenceID: word = 0); - это не из той оперы?
Если да то как этим воспользоваться?

Пытяюсь сделать что-то вроде:  Ping("192.168.4.110", 0); - выдает Undeclared identifier: "Ping"


← →
sniknik ©   (2006-01-26 11:34) [7]

> В одном месте речь идет о VB и С++
т.е. разобратся на другом языке не можеш? ну добавь дополительно в поиск "ping программно delphi"...


← →
СержК   (2006-01-26 13:05) [8]

Народ неужели никто не знает как програмно сделать ping и проанализировать время эха?

Перекопал кучу сайтов, в лучшем случае натыкаюсь на диких размеров исходники в которых не могу разобраться...

Может есть что-то попроще?
Например  в Helpe нашел: procedure Ping(ABuffer: String = ""; SequenceID: word = 0); - не знаю то или нет?

Если да то как этим воспользоваться?

Пытяюсь сделать что-то вроде:  Ping("192.168.4.110", 0); - выдает Undeclared identifier: "Ping"


← →
azl ©   (2006-01-26 13:25) [9]

http://www.hostmake.ru/articles/delphi/delphi41.php


← →
СержК   (2006-01-26 14:45) [10]

> azl
Попробовал использовать пример в этой ссылке - ничего не получилось. Разрываю сетку, а ping в программе проходит...???



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.025 c
1-1138264389
Lucefer
2006-01-26 11:33
2006.02.26
Передать строку через PostMessage


9-1125495687
RzCoDer
2005-08-31 17:41
2006.02.26
Загрузка текстуры из TBItmap


15-1139316579
Weberd
2006-02-07 15:49
2006.02.26
Нужен Delphi программист для выполнения разовой работы.


2-1136903745
Дмитрий_177
2006-01-10 17:35
2006.02.26
Процедура или функция в var-е


15-1138722230
jack128
2006-01-31 18:43
2006.02.26
Сумашедший тест :-)




   Наверх