Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передача файла через UDP Indy, Возникла проблема 
:(
    Опции темы
Mixasik
Дата 3.12.2006, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Little Delphi monstr
*


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

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



Подскажите пожалуста, что я делаю неправильно, ато первый раз с этим столкунулся...
Вот процедура принемает данные
Код

procedure TMainForm.FileSrvUDPRead(Sender: TObject; AData: TStream;
  ABinding: TIdSocketHandle);
Var cmd:TStringStream;fileR:TFileStream;
begin
 If not received then
  Begin
   cmd:=TStringStream.Create('');
   cmd.CopyFrom(Adata,Adata.Size);
   ReceiveFile:=cmd.DataString;
   Received:=true;
  End;
 If (received)and(FileSz=0) then
  Begin
   cmd:=TStringStream.Create('');
   cmd.CopyFrom(Adata,Adata.Size);
   FileSz:=LongWord(cmd.DataString);
  End;
 If (received)and(FileSz>0) then
  Begin
   FileR:=TFileStream.Create(ReceiveFile,fmCreate);
   FileR.CopyFrom(AData,Adata.Size);
  End;
 If FileR.Size=FileSz then
  Begin
   ShowMessage('Файл успешно принят');
   FileR.Free;
  End; 
end;

А вот процедура передающая файл
Код

procedure TMainForm.SendFileBtnClick(Sender: TObject);
Var FileD:TOpendialog;FileS:TFileStream;
begin
 FileD:=TOpenDialog.Create(SendFileBtn);
 If (FileD.Execute)and(FileD.FileName<>'') then
     SendFile:=FileD.FileName else
      Begin
       ShowMessage('Файл не выбран');exit;
      end;
 If fileexists(SendFile) then
  begin
   FileClient.Send(SendFile);
      Sended:=true;
  End else
  Begin
   ShowMessage('Файл не существует');
   Sended:=false;
   exit;
  End;
 FileS:=TFileStream.Create(SendFile,fmOpenRead);
 If (sended)and(FileSz=0) then
  Begin
   FileSz:=FileS.Size;
   FileClient.Send(string(FileSz));
  End;
 If (sended)and(FileSz>0) then
  Begin
   FileClient.SendBuffer(FileS,FileS.Size);
  end;
 FileS.Free;
end;


При передачи в итоги выдается ошибка....
Может ошибка случаться из-за того, что все происходит в localhost или процедуры написаны неверно?
PM MAIL ICQ   Вверх
Snowy
Дата 4.12.2006, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 53
Всего: 484



 smile ндя...
Да тут вообще всё совсем неправильно.
PM MAIL   Вверх
Mixasik
Дата 4.12.2006, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Little Delphi monstr
*


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

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



Цитата(Snowy @  4.12.2006,  12:40 Найти цитируемый пост)
Да тут вообще всё совсем неправильно.


 smile  Ну может пример покажите?)
PM MAIL ICQ   Вверх
Matematik
Дата 4.12.2006, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 24
Всего: 50



UDP не гарантирует что все пакеты придут и в правильной последовательность
PM MAIL WWW ICQ   Вверх
Mixasik
Дата 4.12.2006, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Little Delphi monstr
*


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

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



Ну можно же как-нибудь проверку в ручную сделать?
А хотябы пример отправки файлов с помощью TCP напишите, чат я написал вроде нормально работает, а вот передачу файлов не знаю как реализовать...
PM MAIL ICQ   Вверх
Matematik
Дата 4.12.2006, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 24
Всего: 50



Ты не первый пытаешься файл передать. 
Поиск по форуму поможет.
PM MAIL WWW ICQ   Вверх
Rodman
Дата 4.12.2006, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

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



Mixasik, посмотри тут


но если хочешь что бы пакет подтвеждал свое прибытие - используй TIdTCP..
PM MAIL WWW Skype GTalk YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




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


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

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