| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Хочу сделать, но не знаю как |
| Автор: wolter 29.1.2008, 13:13 |
| Вот хочу написать такую программу которая будет работать с компа клиенская часть: 1. Заходим в оприделенную папку(саму проверку на наличие нового файла делаем примерно каждые 5 минут) 2. смотрим если в ней появился новый фаил то 3. Поверяем устоновленно соедиение через подем с инетом и если инет вообще 4. если да то берей этот фаил и выкладым в папку на www.mysite.com/obmen 5. и отключаемся от инета (если он диалапный) 6. Если инета нет, то делаем подключение через модем и возврощяемся к 3 делаем до пункта 5 7. Опять возврощаемся к 1 Серверная часть: 1. С переодичность кадые 5 минут заходи на www.mysite.com/obmen 2. проверяем если там есть новые файлы то 3. сохронаем его на локальный диск 4. удаляем фаил с www.mysite.com/obmen 5. Опять возврощаемся к 1 Буду очень признателен за пример и комеентарии к ниму Убедительная проздба, ОТЦЫ ПЕРЛА, не судите мой вопрос сильно строго, ибо я только учусь |
| Автор: nitr 29.1.2008, 22:42 |
| wolter, лучше бы разбили данный вопрос на несколько А так - очень похоже на "скрипт за деньги" ;) Давайте по пунктам, проверка на новый файл, можно или сохранять "какие файлы в данной папке сейчас", потом сверять. Как хранить - тут тоже много советовать можем. Установка соединения - зависит от настроек ОС. От перла только передача при соединении. А как выкладывать - можно фтп. Практически тоже самое с серверной частью. Добавлено через 2 минуты и 50 секунд P.S.: читайте правила форума, тема должна отражать суть вопроса. А у вас... |
| Автор: wolter 29.1.2008, 23:15 | ||
Отражаю суть вопросОВ 1 как перл заставить поднить инет по диалапу и соответсвенно отключаться от него под ВинХР??? 2. как заставить перл допустим по ФТП заходить в определенную попку на хосте и смотреть повился там фаил и евляеться ли он свежим если да да как его оттуда забрать себе на комп??? 3 опять же как фаил при помощи перла залить на хост по фтп протаколу? Ну пока остоновися на этих трех вопросах ) Почему мой первый вориант разложен так по пунктам потому что я решил задать все интиресуещие меня вопросы в одной темы а не развозить их на 5 разных тем. |
| Автор: GeoGeo 29.1.2008, 23:44 | ||||
Что знаю , то отвечу , а вдруг поможет ;)
|
| Автор: nitr 29.1.2008, 23:55 |
| 1. настраивается ОС, а не перл 2. разные способы есть, сейчас модули не приведу какие использовать, но можно, например, мд5 хеш хранить по каждому файлу. 3. можно использовать пример выше, а так perldoc Net::FTP |
| Автор: wolter 30.1.2008, 00:21 | ||||||
Огромное СПАСИБО, вот это человек действительно помог пример показал еще и закомментировал, еще раз спасибо тебе огромное теперь есть еще 2 вопроса, как фаил удалить, а как проверить есть ли он там и как довно он там лежит ? |
| Автор: fray 30.1.2008, 00:23 |
| Извените за невтему, хочу всё и сразу |
| Автор: wolter 30.1.2008, 00:32 | ||
1. Приведу пример, допустим выполняеться скрипт, он смотрит в папку на локальном диске и если видет там новый файлы ТО, ПОДКЛЮЧАЕТЬСЯ К НЕТУ, ПРОВЕРЯЕТ, ЕСТЬ ЛИ ИНЕТ, А ПОТОМ ОТСЫЛАЕТ ФАЙЛ И ОТКЛЮЧАЕТЬСЯ ОТ НЕТА. 2. А можно более подробнее (свежость файлов надо будет проверять и на локальном диске и на хосте по фтп) 3 Огромное спасибо GeoGeo этот вопрос решили, теперь как их оттуда удалять (чтени док по модулям даеться мне очень туго Добавлено через 12 минут и 16 секунд Ура!!! Я всетоки нашел в доке модуля как удолить фаил по фтп |
| Автор: wolter 30.1.2008, 10:34 |
| Честно. сказать, я не понял, как при помощи перла сделать диалап соединение, проверят работает ли оно, если не состялся дозвон то опять перезвонить и как потом его отключить Можно подробнее об этом коде use LWP::Simple; print 'Connected to Internet' if is_success head 'www.ru'; Я только недавно начал, точнее сказать ПЫТАЮСЬ писать на перле, как я понял язык этот фактически безграничен И где мне найти библиотеку rasapi.dll на копе, в стандартной поставке винды у меня ее нет |
| Автор: wolter 30.1.2008, 11:08 | ||
Попробовал вот такой код для дозвона
Но не работает |
| Автор: Bulat 30.1.2008, 11:53 |
| wolter, боюсь, что чем дальше, тем больше вопросов, и больше неработающих и неверно работающих кусков кода. Во-первых Линкольн Д. Штайн "Разработка сетевых программ на Perl" тебе в помощь. А вот уже если и после этого + периодического копания в ресурсах интернета, дабы найти ответ на вопрос, что-то не будет получатся, то можно разобратся что и почему |
| Автор: wolter 30.1.2008, 12:37 | ||
Я понимаю что для Вас, проше всего меня культурно послать чем что чемто мне помочь, но Вы учтите тот небольшой факт, что я пришел сюда с вопрос уже ПОСЛЕ того как копался в нете и в перл доках (хотя английский я не знаю и что то понять там мне довольно сложно) и увидим что самостоятельно я с данным вопросом не спарвлюсь пришел уже сюда. |
| Автор: Bulat 30.1.2008, 12:48 |
| wolter, все твои пункты из первого топика - функциональности, возможно на каждый из них многие смогут привести огромное количество примеров, но чтоб написать целостную программу нужно продумать ее логически. Дело не в "послать", а в том что тебя интересует лишь функциональность, сорри за тавтологию, поэтому тебе сложно разобратся со этими вопросами исходя из всего ресурса который есть в интернете. Лично я могу сказать, что большинство из написанного тобой в первом топике легко можно реализовать, если смотреть не только примеры, но еще и читать весь текст который вокруг. Но на это нужно время |
| Автор: wolter 30.1.2008, 12:55 |
| Bulat, Я ниже отписал интиресующие меня вопросы, а именно 1. Как на ВинХр при помощи перла поднять диалп соидинение с нетом, как его проверить и как отключиться от него 2. Как Проверить "новизну" файла на хосте через фтп и на локальном компьютере |
| Автор: Bulat 30.1.2008, 13:02 | ||||||||
это один этап требующий изучения, довольно простой
Очередной этап, более сложный
Также отдельный этап, лично его я реализовывал с помощью протокла фтп, и если сам код программы писал, где-то сутки за полторы, но предварительное изучение фтп протокола всех его тонкостей, ньансов и комманд в конце концов, а также изучение методов модуля NEt::FTP, реализующих все эти команды, заняло у меня почти три недели |
| Автор: PanamOS 30.1.2008, 14:16 |
| Для реализации сетевого подключения информацию можно поискать http://forum.telenet.ru/index.php?showtopic=107906. К перлу конечно относиться мало, но полезное узнать можно, а exec()/system() никто не отменял. По поводу контроля свежести файлов реализацию вроде привел KSURi и даже подсказал в каком направлении копать |
| Автор: KSURi 30.1.2008, 15:42 | ||||||||||||
Если бы ее не было, вы бы не смогли устанавливать подключение к интернету через диалап. Находится она в недрах %WINDIR%\system32 скорее всего.
Ну не удивительно) Вам надо импортировать ф-ии, которые были указаны в моем предыдущем посте. Описание их можно найти в заголовке rasapi.h, которого у вас действительно может не быть в стандартной поставке Windows. Однако, найти его на просторах Интернета не составит труда. Здесь вам поможет MSDN. WinAPI, на мой взгляд, придется использовать только для установки подключения к Интернет, о проверке наличие активного соединения читайте ниже.
Можно: в первой строке подключается модуль LWP::Simple, во второй строке используются две ф-ии из него: is_succes, head. Если коротко, то мы просто пытаемся сделать запрос методом HEAD к серверу корневого домена RU зоны интернета, который доступен в 99.99% (естественно при наличии соединения с Интернет). Подробное описание ф-ии модуля LWP::Simple можно найти в одноименном разделе perldoc. Добавлено @ 15:48 Ага, с WinAPI я пожалуй немного погорячился. Упоминание товарища PanamOS о ф-ях execи system вернуло меня на место) Я совершенно забыл о стандартной Windows команде rasdial.
Вот что вам поможет) |
| Автор: wolter 30.1.2008, 20:10 | ||||
| KSURi, Огромное спасибо!!!!! это просто супер )) Теперь возник другой вопрос как это заставить работать из перла и чтобы от отслеживал дозвонился модем или нет? С этим разобрался
огромное спасибо за пояснение, сразу стало все понятно что и как ) Сего файла у меня действительно намише нету rasapi.dll, пробовал его найти через стандартный поиск, файлом с таким иминем нету, но я скачал его с нета, так что теперь он уже есть )
Что такое ф-ии И что за заголовок rasapi.h ?? |
| Автор: KSURi 31.1.2008, 00:57 |
Нуу... Эээ... Даже не знаю, что вам ответить) Это заголовок (header), в котором описаны прототипы ф-ий, которые в свою очередь хранятся в одноименной библиотеке. Все это уже относится к так называемому Windows API. Который кстати вам уже не нужен, т.к. были предложены альтернативные методы. Если хотите разбираться чисто в познавательных целях - гугель вам в помощь. |
| Автор: wolter 31.1.2008, 08:46 | ||
Ну неужели нельзя было что ф-ии это сокрощение от функции |
| Автор: wolter 31.1.2008, 12:05 |
| неужели никто не может привести пример работы перл скрипта с дозвоном по модему?? |
| Автор: GeoGeo 31.1.2008, 19:23 |
| Имхо, надо настроить систему , чтоб при попытке соединения с ФТП модем звонил провайдеру , а при простое ,допустим в две минуты , разрывал его . |
| Автор: wolter 1.2.2008, 11:55 | ||||
Пока реализовал таким путем
тоесть тупо используем настоенное под виндоей диалап соединение Перл его запускает и модем начинает работать Теперь есть новая проблемма Как обробатать ответные данные от модема ибо пишет он их на кириле и вот в таком формате
Вот это он выдает все и сразу это вориант удочного соединения Как мне обработать выходные данные?? |