Главная страница
    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.46 MB
Время: 0.033 c
3-1096347324
Uran
2004-09-28 08:55
2004.10.24
Как отобразить через DataSet фаил базы данных, сохраненный в txt


14-1096648245
quickblack
2004-10-01 20:30
2004.10.24
Проблема с включением компа


14-1097104726
saNat
2004-10-07 03:18
2004.10.24
Не выполняется операция


1-1097219208
maxistent
2004-10-08 11:06
2004.10.24
Клик крысой на экране


3-1096013574
Aser
2004-09-24 12:12
2004.10.24
Получение конкретного поля из запроса





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский