Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.10.24;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.034 c
4-1095524688
Hensin
2004-09-18 20:24
2004.10.24
Отследить перетаскивание формы


14-1097056418
КаПиБаРа
2004-10-06 13:53
2004.10.24
Помогите составить структуру БД.


14-1096934165
Homa_Programer
2004-10-05 03:56
2004.10.24
НОВОСИБИРЦЫ, ПОМОГИТЕ!!!


1-1097568975
Одиг
2004-10-12 12:16
2004.10.24
TSpeedButton и как к нему приделать drag&drop


1-1097150494
denis24
2004-10-07 16:01
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский