Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.24;
Скачать: CL | DM;

Вниз

Еще раз о пересылке файлов   Найти похожие ветки 

 
PL   (2004-08-19 10:59) [0]

Уважаемые мастера.

Кто-нибудь знает способ пересылки файла по сети с одного компа на другой без клиентсокета/серверсокета? Дело в том, что при попытке посылать файл потоком (Socket.sendStream()) Постоянно вываливается ошибка, что хост разорвал установленное соединение, хотя текст передается нормально. Вот я и хотел спросить, есть ли альтернативные способы слать файл (буфером я уже пробовал - та же фигня)


 
R2D2   (2004-08-19 11:09) [1]

А Socket.sendfile() пробовал?


 
Digitman ©   (2004-08-19 11:18) [2]


> Постоянно вываливается ошибка, что хост разорвал установленное
> соединение, хотя текст передается нормально


что ты считаешь признаком "нормальности передачи" ?

если "вываливается" такая ошибка, то пенять нужно на ошибки в твоем собственном алгоритме, а не на ошибки в упомянутых компонентах


 
PL   (2004-08-19 12:09) [3]

Алгоритмы были взяты их статьи на этом сайте "Программирование серверов на основе сокетов в Дельфи
"

 {Прием файла через сокет}
 procedure TForm1.ClientSocket1Read(Sender: TObject;
   Socket: TCustomWinSocket);
  var l: Integer;
      buf: PChar;
      src: TFileStream;
 begin
   {Записываем в l размер полученного блока}
   l := Socket.ReceiveLength;
   {Заказываем память для буфера}
   GetMem(buf,l+1);
   {Записываем в буфер полученный блок}
   Socket.ReceiveBuf(buf,l);
   {Открываем временный файл для записи}
   src := TFileStream.Create("myfile.tmp",fmOpenReadWrite);
   {Ставим позицию в конец файла}
   src.Seek(0,soFromEnd);
   {Записываем буфер в файл}
   src.WriteBuffer(buf,l);
   {Закрываем файл}
   src.Free;
   {Освобождаем память}
   FreeMem(buf);
 end;


 {Посылка файла через сокет}
 procedure SendFileBySocket(filename: string);
  var srcfile: TFileStream;
 begin
   {Открываем файл filename}
   srcfile := TFileStream.Create(filename,fmOpenRead);
   {Посылаем его первому подключенному клиенту}
   ServerSocket1.Socket.Connections[0].SendStream(srcfile);
   {Закрываем файл}
   srcfile.Free;
 end;



НУ НЕ ХОТЯТ ОНИ РАБОТАТЬ:(


 
Digitman ©   (2004-08-19 12:14) [4]


> НУ НЕ ХОТЯТ ОНИ РАБОТАТЬ


и не будут

потому что :

1. код этот с грубыми ошибками
2. ты палец о палец не ударил, чтобы проанализировать код, оттрассировать его пошагово в режиме отладки и найти ошибки


 
PL   (2004-08-19 12:29) [5]

Ну кто ж знал, что статьи по Delphi от "Мастеров" содержат код с "Грубыми ошибками"

Я даже не знаю, что такое трассировать пошагово в режиме отладки. Просто реализовать это нужно срочно (до сегодняшнего вечера), а времени искать способы и изучать особенности нету (кто курсовые делал, тот поймет). Поэтому я и надеялся на помощь тут. Зря.


 
Digitman ©   (2004-08-19 13:01) [6]


> PL   (19.08.04 12:29) [5]


> кто ж знал, что статьи по Delphi от "Мастеров" содержат
> код с "Грубыми ошибками"


сожалею.
статьи от Н.Кариха давно пора выкорчевать с сайта


> не знаю, что такое трассировать пошагово в режиме отладки


учебники и стандартная справочная инф-ция Делфи уже упразднены ?


> реализовать это нужно срочно (до сегодняшнего вечера),


если ты взялся за явно непосильную тебе на сей момент задачу - прими соболезнования ... ибо нет и не было простых задач, не требующих хоть каких-либо знаний


> кто курсовые делал, тот поймет


какие нафих курсовые ?! каникулы же !)


> времени искать способы и изучать особенности нет


нечего было балдеть все два семестра - следовало учиться

единственное чем сейчас могу реально помочь - поставь buf^ вместо buf в вызовах ф-ций TCustomWinSocket.ReceiveBuf и TStream.WriteBuffer


 
PL   (2004-08-19 18:38) [7]

2 Digitman
Слушай, чего ты злой такой? Написал бы "Ничем не могу помочь". А то рычишь на всех, а пользы... Я тож могу всем отвечать "RTFM", но разве форум для этого...



Страницы: 1 вся ветка

Текущий архив: 2004.10.24;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.03 c
14-1096953586
Layner
2004-10-05 09:19
2004.10.24
Переносной носитель памяти USB Flash


3-1096362295
Новенький
2004-09-28 13:04
2004.10.24
2 вопроса по QuickReport.


14-1096580193
Comp
2004-10-01 01:36
2004.10.24
Указатель


1-1097412833
CoolMan
2004-10-10 16:53
2004.10.24
Чтение строки из файла и помещение её в TEdit


9-1084898608
Warlock
2004-05-18 20:43
2004.10.24
Зацените мое первое творение