Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 5 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 16.04.2004
Откуда: [MSK.RU]
Пытаюсь освоить компоненты Indy Trivial FTP Server и Indy Trivial FTP Client.
Код upload'a клиента:
Код:
  TFileStream *FS;
  FTPC->Host=eHost->Text;
  FTPC->Port=sePort->Value;
  if(OD->Execute())
   {
    FS=new TFileStream(OD->FileName,fmOpenRead);
    FTPC->Put(FS,ExtractFileName(OD->FileName));
    FS->Free();
   }


Код приёма сервера:
Код:
void __fastcall TForm1::FTPSWriteFile(TObject *Sender,
      AnsiString &FileName, const TPeerInfo &PeerInfo, bool &GrantAccess,
      TStream *&AStream, bool &FreeStreamOnComplete)
{
 TFileStream *FS;
  if(MessageDlg("File from: "+PeerInfo.PeerIP+". Accept?", mtConfirmation,
    TMsgDlgButtons() << mbYes << mbNo, 0)==mbYes)
    {GrantAccess=1;}
 else
    {GrantAccess=0;}
 try{
 AnsiString FN=ExtractFileName(repl(FileName,'/','\\'));
 mLog->Lines->Add("Receiving "+FN);
 FS=new TFileStream(FPath+FN,fmCreate | fmShareExclusive);
 AStream=FS;
 FreeStreamOnComplete=1;
 }catch(...){mLog->Lines->Add("Error on Write File!"); GrantAccess=0; FS->Free();}
}


При попытке передачи происходит следующее:
1. Запрашивается разрешение на приём.
2. Создаётся файл с нужным именем в папке сервера.
3. Клиент выдаёт exception: Аccess to <filename> denied.
4. Передача прерывается, целевой файл имеет нулевой размер.

Пробовал заюзать клиента из примеров Indy, но с ним та же фигня. Пробовал на WinXP, Win2K и Win98. В какую сторону мне копать?



Партнер
 

Member
Статус: Не в сети
Регистрация: 28.03.2006
В Билдере всегда было много багов - копать нужно в сторону WinSock.

_________________
Первый огонь был получен людьми из-за перегрева.
Пессимист отличается от оптимиста датой наступления конца света.


 

Member
Статус: Не в сети
Регистрация: 16.04.2004
Откуда: [MSK.RU]
Aside
Переписал в Дельфи 7 - та же фигня :(
Что с WinSock делать - понятия не имею :insane: Никогда не писал ничего сетевого...
Можно это как-то исправить в рамках используемых компонентов?


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
Aside какой еще WinSock? Самому чтоли фтп протокол руками реализовывать?

_________________
Ку ку


 

Member
Статус: Не в сети
Регистрация: 28.03.2006
Daemon
Да.

_________________
Первый огонь был получен людьми из-за перегрева.
Пессимист отличается от оптимиста датой наступления конца света.


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 5 
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan