Модераторы: Aliance, skyboy, MoLeX, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> синхронизация содержимого папок 
V
    Опции темы
Acer
  Дата 23.1.2008, 02:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 5.9.2007
Где: UA::DN

Репутация: нет
Всего: 8



Есть локальная сеть (Windows).
На одном из компов локальной сети стоит Apache. На нем есть директория, называемая Secondary
На другом компе находится директория, которая называется Prime.
Необходимо, чтобы файлы в директории Secondary были такие же, как в директории Prime(вычесляется CRC32 код).
Алгоритм я уже написал.
Одна проблема возникает. Как скопировать файлы по локальной сети с помощью PHP. Либо как это сделать через cmd...
 smile 
Подскажите пожалуйста.

Это сообщение отредактировал(а) Acer - 23.1.2008, 03:01
PM MAIL   Вверх
Sardar
Дата 23.1.2008, 04:31 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: нет
Всего: 317



Качественно и на долго: rsync  (только для винды тяжёлый Cygwin просит)
fopen понимает \\server\share пути, т.е. расшарь директорию (виндовая сеть задумчива, может тормозить).
Можно FTP поднять на Secondary и сливать файлы.
Можно на прямую друг к другу сокеты открывать и файлы передавать (firewall локальный должен позволить)



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Acer
Дата 23.1.2008, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 5.9.2007
Где: UA::DN

Репутация: нет
Всего: 8



Sardar, можешь подсказать, как с помощью сокетов такое делать? То, есть кусочичек кода... Я читал про них, но ниче не понял smile
PM MAIL   Вверх
GeneralElectric
Дата 23.1.2008, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: нет
Всего: 16



Acer, ты уверен, что это надо делать "с помощью соектов"?  Ты, собственно, имеешь представление о том, что такое сокет?
PM MAIL   Вверх
MoLeX
Дата 23.1.2008, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: нет
Всего: 140



ИМХО: на второй компьютер поставил бы ftp-сервер и в дальнейшем через фтп передавал файлы. 


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Sardar
Дата 23.1.2008, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: нет
Всего: 317



Цитата(Acer @  23.1.2008,  09:45 Найти цитируемый пост)
можешь подсказать, как с помощью сокетов такое делать?

В первом же комменте пример. Идея проста:
  • создаём сокет типа AF_INET
  • биндим на локальный адрес/порт
  • ставим размер очереди коннектов (socket_listen)
  • socket_accept блокирует, пока кто нибудь не подключится
  • читаем стрим из сокета (к примеру TAR/GZ архив), что нибудь делаем
Удобная socket_create_listen выполняет первые три шага за тебя.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Acer
Дата 23.1.2008, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 5.9.2007
Где: UA::DN

Репутация: нет
Всего: 8



Цитата(GeneralElectric @ 23.1.2008,  11:33)
Acer, ты уверен, что это надо делать "с помощью соектов"?  Ты, собственно, имеешь представление о том, что такое сокет?

Не уверен, что это надо делать с помощью сокетов. И имею очень маленькое представление о них

Добавлено через 5 минут и 43 секунды
Цитата(Sardar @ 23.1.2008,  12:47)
Цитата(Acer @  23.1.2008,  09:45 Найти цитируемый пост)
можешь подсказать, как с помощью сокетов такое делать?

В первом же комменте пример. Идея проста:

  • создаём сокет типа AF_INET
  • биндим на локальный адрес/порт
  • ставим размер очереди коннектов (socket_listen)
  • socket_accept блокирует, пока кто нибудь не подключится
  • читаем стрим из сокета (к примеру TAR/GZ архив), что нибудь делаем
Удобная socket_create_listen выполняет первые три шага за тебя.

Спасибо. Щас попробую смастерить что-то. Просто первый раз имею дело с такими вещами
PM MAIL   Вверх
GeneralElectric
Дата 23.1.2008, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: нет
Всего: 16



Sardar, мне кажется, что вы друг друга немного не поняли =)

Acer, по локальной сети файлы копируются в PHP точно так же, как и в файловой системе. Указываешь имена файлов - и в путь. Как минимум, тебе надо хотя бы попробовать это сделать.
А с помощью сокетов что-то сделать можно только в том случае, если у тебя есть этот сокет. Т.е. порт, в котором сидит кто-то, кто понимает команды, которые ты собираешься ему отдать. На втором компе ничего такого, как я понимаю, нету.

PM MAIL   Вверх
Sardar
Дата 23.1.2008, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: нет
Всего: 317



2GeneralElectric, вариант с сокетами был самый последний, как наименее гибкий (но быстрый в реализации smile ).

Цитата(GeneralElectric @  23.1.2008,  12:08 Найти цитируемый пост)
Т.е. порт, в котором сидит кто-то, кто понимает команды

В данном случае пишется и клиент, и сервер. В предыдущем посте подсказал как создать именно серверную сторону. Клиент думаю всем предельно ясен (fsockopen, fread/fwrite).


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
MoLeX
Дата 23.1.2008, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: нет
Всего: 140



Цитата(Sardar @  23.1.2008,  13:20 Найти цитируемый пост)
В данном случае пишется и клиент, и сервер. 

лишнии действия, не стоит заново изобретать велосипед если он уже есть. 

Вопрос к Acer'у: это единоразовая операция по копированию или она должна выполняться при появлении новых файлов в указанной папке?


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Acer
Дата 23.1.2008, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 5.9.2007
Где: UA::DN

Репутация: нет
Всего: 8



Цитата(MoLeX @ 23.1.2008,  13:34)
Вопрос к Acer'у: это единоразовая операция по копированию или она должна выполняться при появлении новых файлов в указанной папке?

При нажатии кнопки файлы начинают проверяться... Ну, с одной стороны единоразовая с другой нет smile
PM MAIL   Вверх
Acer
Дата 25.1.2008, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 5.9.2007
Где: UA::DN

Репутация: нет
Всего: 8



Народ, ниче не получилось. :(
Может что-то надо включить в httpd.conf?
Я пробовал стандартными функциями пхп. fopen(), readdir(), copy() с указанием сетевых путей к расшаренным директориям....
PM MAIL   Вверх
GeneralElectric
Дата 25.1.2008, 18:36 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: нет
Всего: 16



что ты делал функцией fopen()? какая из этих трех функций не работает?
И - самое главное - что значит "ниче не получилось"? не получилось написать эти функции без ошибок? Не получилось запустить PHP скрипт? Или браузер?
Что именно не получилось? Как можно помочь человеку, у которого вся проблема укладывается в три слова: "я пробовал функцию readdir"?
Как именно пробовал? Что хотел получить? что получил в итоге? Какие сообщения об ошибках выдавались?

Добавлено через 2 минуты и 23 секунды
Цитата(Acer @  25.1.2008,  17:19 Найти цитируемый пост)
Может что-то надо включить в httpd.conf

может и надо. Но не тыкать же наугад! Если включать - то осмысленно, наверное? Проанализировав ошибки, и установив причину.

такой настройки "чтобы работала функция readdir" в httpd.conf нету.
PM MAIL   Вверх
Acer
Дата 25.1.2008, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 5.9.2007
Где: UA::DN

Репутация: нет
Всего: 8



fopen( '//10.55.1.129/Shared/text.txt', 'r' );

Warning: fopen(//10.55.1.129/Shared/text.txt) [function.fopen]: failed to open stream: Permission denied in D:\WWW\htdocs\pal\test.php on line 3

opendir( '//10.55.1.129/Shared' );
Warning: opendir(//10.55.1.129/Shared) [function.opendir]: failed to open dir: Permission denied in D:\WWW\htdocs\pal\test.php on line 7


Права есть. На чтение тем более.
PM MAIL   Вверх
GeneralElectric
Дата 25.1.2008, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: нет
Всего: 16



Файрволл?

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Сеть | Следующая тема »


 




[ Время генерации скрипта: 0.0850 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.