Форум программистов «Весельчак У»
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
Начало
Наши сайты
Галерея
Весельчак У
Наша Вики
Хранилище
Проекты
Правила
Правила форума
Правила русского языка
Помощь
Поиск
Календарь
Почта
Войти
Регистрация
Форум программистов «Весельчак У»
>
Программирование
>
Delphi
(Модератор:
x77
) > Тема:
socket
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: socket (Прочитано 6054 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Наталья
Гость
socket
«
:
24-06-2005 13:02 »
Как передавать файлы через Socket'ы. Скинте примеры рабочие, please. Есть примеры, но они выдают ошибку на прием - ошибка адреса:
{Посылка файла через сокет}
procedure SendFileBySocket(filename: string);
var srcfile: TFileStream;
begin
{Открываем файл filename}
srcfile := TFileStream.Create(filename,fmOpenRead);
{Посылаем его первому подключенному клиенту}
ServerSocket1.Socket.Connections[0].SendStream(srcfile);
{Закрываем файл}
srcfile.Free;
end;
{Прием файла через сокет}
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;
«
Последнее редактирование: 17-12-2007 16:53 от Алексей1153++
»
Записан
Серж
Гость
Re: socket
«
Ответ #1 :
24-06-2005 13:19 »
Насколько я понимаю, нужно вместо
Socket.ReceiveBuf(buf,l);
.....
src.WriteBuffer(buf,l);
писать
Socket.ReceiveBuf(buf^,l);
.....
src.WriteBuffer(buf^,l);
Записан
Наталья
Гость
Re: socket
«
Ответ #2 :
27-06-2005 04:40 »
Большое спасибо!!!! Все получилось.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Форум программистов «Весельчак У»
>
Программирование
>
Delphi
(Модератор:
x77
) > Тема:
socket
Загружается...