Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.26;
Скачать: 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 вся ветка

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

Наверх




Память: 0.49 MB
Время: 0.087 c
2-1139610999
Child
2006-02-11 01:36
2006.02.26
Почему когда вписываю в uses QStdCtrls и QCheckLst, то перестаёт


1-1138108043
WebSQLNeeder
2006-01-24 16:07
2006.02.26
Многострочные записи в ValEdit


2-1139675549
veb
2006-02-11 19:32
2006.02.26
NOT LIKE


3-1135776468
VICTOR_MV
2005-12-28 16:27
2006.02.26
BDE. Два разных ПО не могут одновременно работать.


2-1139483293
Tigraman
2006-02-09 14:08
2006.02.26
Сжатие