|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.07.2008, 12:51 | #1 |
Регистрация: 24.07.2008
Сообщений: 4
|
Сного про файлы
На клиенте при получениие сообщения "Файл" вызывается процедура
procedure TForm1.SendFile; var srcfile: TFileStream; begin srcfile := TFileStream.Create('C:\1.txt',fmOpe nRead); //ServerSocket1.Socket.Connections[0].SendText(IntToStr(srcfile.Size) + #0); ServerSocket1.Socket.Connections[0].SendStream(srcfile); srcfile.Free; end; Дальше вызывается процедура OnRead у клиента: procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); var l: Integer; buf: PChar; src: TFileStream; begin l := Socket.ReceiveLength - 1; GetMem(buf,l+1); Socket.ReceiveBuf(buf,l); src := TFileStream.Create('E:\1.txt',fmOpe nReadWrite);// это куда файл сохраняется после пердачи? src.Seek(0,soFromEnd); src.WriteBuffer(buf,l); src.Free; FreeMem(buf); end; Выскакивает ошибка Access violation of adres 004021CE in module {наз проги сервера} Write of adress 0000001A |
25.07.2008, 12:51 | #2 |
Регистрация: 24.07.2008
Сообщений: 4
|
Здесь мы рассмотрим посылку файлов через сокет. Итак, как же послать файл по сокету? Очень просто! Достаточно лишь открыть этот файл как файловый поток (TFileStream) и отправить его через сокет (SendStream)! Рассмотрим это на примере:
{Посылка файла через сокет} procedure SendFileBySocket(filename: string); var srcfile: TFileStream; begin {Открываем файл filename} srcfile := TFileStream.Create(filename,fmOpenR ead); {Посылаем его первому подключенному клиенту} ServerSocket1.Socket.Connections[0].SendStream(srcfile); {Закрываем файл} srcfile.Free; end; Нужно заметить, что метод SendStream используется не только сервером, но и клиентом (ClientSocket1.Socket.SendStream(sr cfile)) Этот способ мне понравился, но как обработать прием файла с указанием пути созранения? Последний раз редактировалось Elandar; 25.07.2008 в 12:58. |
25.07.2008, 21:20 | #3 |
Регистрация: 24.07.2008
Сообщений: 4
|
Расскажите пожалуйста как сохранить полученный файл в определенное место
Последний раз редактировалось Elandar; 26.07.2008 в 00:11. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Файлы. | BR@BUS | Помощь студентам | 5 | 09.04.2008 19:35 |
Файлы | Logan | Паскаль, Turbo Pascal, PascalABC.NET | 6 | 01.04.2008 10:15 |
INI файлы | aesoem | Общие вопросы Delphi | 3 | 24.12.2007 21:22 |
два вредных вопроса:про асю и прикриплёные файлы файлы | steck | Свободное общение | 3 | 17.06.2007 14:53 |