Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 08.10.2011, 04:21   #1
VAM
Пользователь
 
Аватар для VAM
 
Регистрация: 06.02.2011
Сообщений: 30
По умолчанию Использование IdFTP и IdFTPserver в локальной сети

Доброго времени !

Скажите как можно использовать IdFTP и IdFTPserver в локальной сети ? И с помощью них передавать файлы по локальной сети. Большие файлы - около 1-2 Гб.
Или может быть использовать другой метод ?
Прикрепленный исходник вроде работает, НО(!) файл не передается. Ошибки: "Time out" да и "Not logged in" тоже присутствует.

Очень прошу помощи.
Вложения
Тип файла: zip FTP2.zip (4.0 Кб, 82 просмотров)
« Amor Componentis Nos Unit »
VAM вне форума
Старый 08.10.2011, 08:29   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Здесь не полный код. Не хватает обработчиков авторизации для FTPServer.
"Not logged in" значит что твой сервер не принял пользователя и пароль.
"Time out" тоже скорее всего из-за отсутствия описания в коде авторизации, но может быть и брандмауер гасит, его тоже стоит настроить на разрешение работы FTP

Кстати IdFTP.Connect; можно заменить на IdFTP.Login; при этом указать пароль и юзера в соответствующих свойствах компонента.

P.S. под рукой примера нет, если нужно могу позже показать как я подключаюсь

P.P.S. Название AssErt улыбнуло )
I'm learning to live...
Stilet вне форума
Старый 08.10.2011, 08:44   #3
VAM
Пользователь
 
Аватар для VAM
 
Регистрация: 06.02.2011
Сообщений: 30
Смущение

Цитата:
Сообщение от Stilet Посмотреть сообщение
Здесь не полный код. ....
Дело в том, что у меня нет опыта работы с данными компонентами вообще.

Цитата:
Сообщение от Stilet Посмотреть сообщение
....
P.S. под рукой примера нет, если нужно могу позже показать как я подключаюсь
....
Буду с нетерпением ждать !
И заранее благодарю !
« Amor Componentis Nos Unit »
VAM вне форума
Старый 08.10.2011, 18:45   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Выкладываю свой FTP сервер. Может кому-то и понадобится.
Он умеет:
1) Обычный ФТП. Создавать папки, удалять файлы, копировать, считывать. Короче я им в тотале коммандере пользую а-ля локалки, но через интернет.
2) Передает сообщение. Команда msg <текст сообщения>. Типа чата одностороннего. Делал для себя
3) Может удаленно запускать процесс и останавливать
exec <имя экзешника> - запускает
term <имя процесса> - тушит

Там конечно напихано всякой гидоты, но говоря в тему, VAM, стоит обратить на следующие моменты:

В модуле FTPServer
Код:
rocedure TDataModuleServer.ftpsUserLogin(ASender: TIdFTPServerContext;
  const AUsername, APassword: string; var AAuthenticated: Boolean);
begin
 AAuthenticated:=(AUsername=userview)and(APassword=pass);
 if AAuthenticated then
  log.Add(DateTimeToStr(now)+#9+ASender.Host+' подключен')
 else
  log.Add(DateTimeToStr(now)+#9+ASender.Host+' отвергнут');
end;
Идет проверка аккаунта. Сам пароль жестко прописан в программе в модуле Constant.

Само подключение можно увидеть в модуле FTPClient
Код:
function TDataModuleClient.Connect;
begin
 with IdFTP1 do begin
  Host:=AHost;
  //Account:='0';
  Username:=userview;
  Password:=pass;
  Port:=DefServPort;
  DataPort:=DefDataPort;
  try
   Connect;
   Login;
   Result:=true;
  except
   Result:=false;
  end;
 end;
end;
Правда я тут зря connect использую, так как метод Login должен его вызывать, ну да ладно... Дело житейское.

Ну и передача файла описана в модуле FTPClient:
Код:
function TDataModuleClient.PostFile;
var  f:TFileStream;
begin
      f:=TFileStream.Create(FileNameFrom,fmOpenRead);
       try
        IdFTP1.Put(f,PathTo+ExtractFileName(FileNameFrom));
        Result:=true;
       except
        Result:=false;
       end;
      f.Free;
end;
Я такие вещи в отдельный класс вынес, удобнее получается.
Если будут вопросы, пиши на почту или в аську. Или сюда. Сразу хочу предупредить - в эфире бываю редко.
Вложения
Тип файла: rar FTPussy.rar (169.2 Кб, 149 просмотров)
I'm learning to live...
Stilet вне форума
Старый 10.10.2011, 20:48   #5
VAM
Пользователь
 
Аватар для VAM
 
Регистрация: 06.02.2011
Сообщений: 30
По умолчанию

Я так понимаю проект на DelphiXE написан или еще чего XE2 ?
Эммм....
Короче вот все что удалось увидеть на экране.




Ничего так и не ясно...
Можно смеяться ...

P.S.
У меня D2010.

P.P.S.
А можно на примере дополнения моего кода ?

Все. Готово.
Работает.

Все работает. Только не на WinXP.
Передача не проходит с Windows7 -> WindowsXP, WindowsXP -> WindowsXP.
Win7 -> Win7, WinXP -> Win7 - все работает !

Почему ?

Операции с брендмауэром, антивирусом, фэйрволом не предлагайте.
Все испробовано.

Пробовалось в локалке с доменом и на виртуальной машине.

--------------------------------------------------------------
Добавил:

Код:
IdFTP.Connect; // Не вызывает ошибки
...
...
FTP.Put(StreamToSend, 'FileName', false); // Вот тут ошибка: Could not bind socket. Address and port are already in use.
Решено.
Закройте тему.
Вложения
Тип файла: zip FTP2.zip (10.1 Кб, 140 просмотров)
« Amor Componentis Nos Unit »

Последний раз редактировалось mihali4; 09.11.2011 в 13:04.
VAM вне форума
Старый 31.10.2011, 09:08   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Решено.
Как? Делись секретами, ато обижусь.
I'm learning to live...
Stilet вне форума
Старый 31.10.2011, 09:21   #7
VAM
Пользователь
 
Аватар для VAM
 
Регистрация: 06.02.2011
Сообщений: 30
По умолчанию

У IdFTPServer есть свойства PASVBoundPortMax и PASVBoundPortMin.
  1. они должны быть не нулевыми
  2. DefaultDataPort и DataPort должны быть в этом диапазоне.

И именно в ХР на приеме.
В Висте и 7-ке все и без этих свойств работает.
« Amor Componentis Nos Unit »
VAM вне форума
Старый 31.10.2011, 09:26   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Странно... не замечал. У меня все замечтательно работает по сей день.
I'm learning to live...
Stilet вне форума
Старый 31.10.2011, 10:01   #9
VAM
Пользователь
 
Аватар для VAM
 
Регистрация: 06.02.2011
Сообщений: 30
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Странно... не замечал. У меня все замечтательно работает по сей день.
Может потому что Indy версии у нас с тобой разные ?
У меня Д2010 (еще есть ХЕ2), а ты, если не ошибаюсь более ранней версией пользуешься.
« Amor Componentis Nos Unit »
VAM вне форума
Старый 31.10.2011, 10:51   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Может быть...
I'm learning to live...
Stilet вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Socket: Подключение клиента из глобальной сети к серверу, расположенному в локальной сети Дамир Общие вопросы .NET 4 01.12.2010 12:12
Чат в локальной сети _-Re@l-_ Работа с сетью в Delphi 3 26.11.2010 15:55
Проблема с IP локальной сети. FauMan Операционные системы общие вопросы 5 23.11.2010 09:10
Настройка локальной сети Наденька Работа с сетью в Delphi 2 31.07.2009 17:09