![]() |
Передача файла по сети
Ребят, подскажите как реализовать мою задачу...
Нужно с компов сети собирать Репорты(текстовые файлики) на мой комп. нащёд в инете отличный пример реалзации передачи файла с помощью TClientSocket и TServerSocket, но у меня консольное приложение, поэтому эти элементы немогу добавить на форму, так как формы собственно нет)) подскажите что можно сделать?) Или может можно как то по друому эти репорты отправлять на мой комп? допустим складывать в расшареную папку у меня на компе?(правда нужно чтобы доступа небыло к этой папке...) ещё как вариант отправлять их на мыло, но его не хочу, хочется в пределах локальной сети всё сделать) |
1. Пусть эти файлы будут shared на тех компьютерах где они лежат, тогда можно просто их копировать с помощью кода и уже работать у себя на компе.
2. Если share не хочется , то тогда используйте сокеты, но тут дилемма. Чтобы сокеты использовать надо 2 приложения - сервер и клиент. Сервер работает на стороне, где лежат файлы , а клиент работает у Вас на компьютеры. Сокеты можно использовать и в консольных приложениях. |
Цитата:
Только в этом случае те параметры, которые можно было править на форме, придётся прописывать в коде программы. |
Цитата:
Цитата:
а есть какой нибудь пример как это делается? потому что всё таки придется делать скорей всего через сокеты, а как их в ручную прописывать ума не приложу... |
Цитата:
1. что за операционные у клиентов 2. какие учетные записи у этих клиентов 3. в конце - концов есть ли домен вообщем рулить надо через права доступа к папке или к файлу , это не сложно. Хотя если запретить им доступ или ограничить , скажем на запись, то тут возникает один нюанс. Ведь файлики создаются и дополняются "чем-то", скорее всего какой-то софтинкой клиентской, то ограничив доступ к файлу, они не смогу писать в эти файлы так что такой вариант, не катит К примеру icq-логи. Есть такая фишка на предприятии , когда "дыректор-пуп-земли" хочет знать а не пишут ли там чего то про него сотрудники в icq , а так как эта программа оставляет логи , если ее не настроить должным образом или не удалять логи самому , то можно написать софт который будет логи собирать и предоставлять для анализа. Задачу более подробно опишите может чем помочь смогу более этого. |
Цитата:
2) учётки с правами пользователя 3)Рабочая группа Моя програмка(на С++ писал) создаёт текстовый отчёт, вот хотел её ещё дописать чтобы она этот отчёт мне скидывала, но с сокетами не хочу пока связываться, так как прога без формы) вот мне бы эти репорты собрать, но как? если просто расшарить, то любой в сети сможет этот репорт в итоге качнуть... кстати тут ситуация немного похожа, про директора)) вот думаю... а может на фтп скидывать? надо глянуть, тяжело ли это на сях реализовать) хотя этот вариант тоже не фонтан) |
Пусть программа будет не у Вас на компьютере а у людей , в реестре пропишите чтобы она стартовала вместе с операционной системой и работала все время как работает пользователь. На Вашем компьютере расшарте папку для записи от Вашей программы.
В коде я бы прописал так , сначала мы проверяем есть ли доступ к Вашему компьютеру , скажем есть, мы берем и побитно копируем файл в папку. И так будет на всех компьютерах эта программка копировать. А потом скажем программка "засыпает". То есть на какой-то промежуток времени основной поток программы Sleep() или можно это организовать через Timer. Timer вызывает в определенный промежутки времени процедуру копирования CopyFileToMe() и потом снова засыпает. Timer настройте на 1 час или на 30 минут. Если у Вас на компьютере стоит Professional XP/Vista/Win7 то можно создать папку на нее поставить разрешения только для администратора, на чтение и запись ( раздел безопасность в свойствах папки ) . Если такого раздела нет то надо убрать галочку в "Сервис" - "Свойства папки" - "Вид" - "Использовать простой общий доступ к файлам " ( это в XP ) в Viste и Win7 надо рулить в панели управления, там искать "Свойства папки". И когда мы будет писать в эту папку , на в нее писать от имени администратора предоставляя логин и пароль. Реально круто получиться. Как это сделать , в коде я точно не знаю , можно посмотреть. Как идея ? |
кстати пишите на чем-то более "высокоуровневом" , нежели голый с++ , скажем форму легко можно скрыть указав в свойствах ее невидимость MyForm.Visible = false при загрузке приложения . Так как задача прикладная , я бы рекомендовал Delphi, C++ Builder, Visual Basic , C# .... чистый win api не рекомендую - времени больше уйдет.
|
идея то хороша, вот только думаю проблемно мне будет её реализовать)) думаю проще уже форму невидимую сделать и реализовать сокетами))
пишу на С++Builder, просто приложение консольное) |
там ничего сложного, абсолютно ничего. Задача решается за день-два "медленного" программирования. С сокетами сложнее , так как надо будет согласовывать работу двух сокетов - серверного и клиентского.
|
Цитата:
Код:
|
Время: 03:04. |
Время: 03:04.
© OSzone.net 2001-