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

Вниз

почему не передаются файлы?   Найти похожие ветки 

 
cvv ©   (2003-06-30 15:41) [0]

почему не передаются файлы? где я не прав? передавать файлы
необходимо именно на IdUDPClient/IdUDPServer. может кто кинет
код как это сделать?
(IdUDPClient.Host = 127.0.0.1, IdUDPClient.ReceiveTimeOut = 2000)
Причем если IdUDPServer1.ThreadedEvent = False, то прога вешается
и закрыть ее обычным образом невозможно. спасибо.

передача:
procedure TForm1.Button1Click(Sender: TObject);
var
FSrc: TFileStream;
begin
if OpenDialog1.Execute then begin
FSrc := TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
{пусть размер файла <= 8192 }
IdUDPClient1.SendBuffer(FSrc, FSrc.Size);
FSrc.Free;
end; {if}
end;

прием:
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
var
BufDst: TMemoryStream;
begin
BufDst := TMemoryStream.Create;
BufDst.SetSize(8192);
{функция IdUDPServer1.ReceiveBuffer постоянно возвращает 0.
Почему ничего не получаю?}
if IdUDPServer1.ReceiveBuffer(BufDst, BufDst.Size) > 0 then
( "D:\temp.tmp") почему не передаются файлы? где я не прав? передавать файлы
необходимо именно на IdUDPClient/IdUDPServer. может кто кинет
код как это сделать?
(IdUDPClient.Host = 127.0.0.1, IdUDPClient.ReceiveTimeOut = 2000)
Причем если IdUDPServer1.ThreadedEvent = False, то прога вешается
и закрыть ее обычным образом невозможно. спасибо.

передача:
procedure TForm1.Button1Click(Sender: TObject);
var
FSrc: TFileStream;
begin
if OpenDialog1.Execute then begin
FSrc := TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
{пусть размер файла <= 8192 }
IdUDPClient1.SendBuffer(FSrc, FSrc.Size);
FSrc.Free;
end; {if}
end;

прием:
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
var
BufDst: TMemoryStream;
begin
BufDst := TMemoryStream.Create;
BufDst.SetSize(8192);
{функция IdUDPServer1.ReceiveBuffer постоянно возвращает 0.
Почему ничего не получаю?}
if IdUDPServer1.ReceiveBuffer(BufDst, BufDst.Size) > 0 then
BufDst.SaveToFile("D:\temp.tmp");
BufDst.Free;
end;


 
jel ©   (2003-06-30 16:52) [1]

IdUDPClient1.SendBuffer( FSrc, FSrc.Size);
( BufDst, BufDst.Size) IdUDPClient1.SendBuffer( FSrc, FSrc.Size);

Это указатель на экземпляр потока, а не данные.
Если уж передавать то сам файл. То есть читать из потока в буфер и отправлять в сеть.
С приемом - то же самое, хорошо еще что не AV получаешь.

> IdUDPServer1.ReceiveBuffer(BufDst, BufDst.Size)

Вдумайся в эту строку.


 
cvv ©   (2003-07-01 12:27) [2]

спасибо.



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

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

Наверх




Память: 0.47 MB
Время: 0.017 c
14-10942
Dimedrol
2003-08-16 16:52
2003.09.04
Как PDF конвертнуть в TIFF ?


1-10740
Valeris
2003-08-19 16:23
2003.09.04
Текстовое поле для ввода айпишника???


3-10636
Alik$
2003-07-28 22:33
2003.09.04
DBGrid


14-10892
Карелин Артем
2003-08-18 11:49
2003.09.04
Могут ли наушники воспроизводить звук на 10Гц?


1-10822
D_V_P
2003-08-21 17:02
2003.09.04
Интерфейсы