
06.12.2011, 14:04
|
 |
Let Me Show You
|
|
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
|
|
Код:
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
var
Buffer: array of Byte;
Len: Integer;
begin
Len:=AData.Size;
SetLength(Buffer, Len);
Memo1.Lines.Add(IntToStr(Len));
if FileStreamSize=-1 then
begin
AData.ReadBuffer(Buffer[0], Len);
FileStreamSize:=PInteger(@Buffer[0])^;
end else
begin
Len:=AData.Read(Buffer[0], Len);
AFileStream.Write(Buffer[0], Len);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
FileStream: TFileStream;
Buffer: array [0..$fff] of Byte;
Len: Integer;
begin
FileStream:=TFileStream.Create('image.jpg', fmOpenRead);
try
PInteger(@Buffer[0])^:=FileStream.Size;
IdUDPClient1.SendBuffer('10.162.48.4', IdUDPServer1.DefaultPort, Buffer[0], SizeOf(Integer));
repeat
Len:=FileStream.Read(Buffer[0], Length(Buffer));
IdUDPClient1.SendBuffer('10.162.48.4', IdUDPServer1.DefaultPort, Buffer[0], Len);
Application.ProcessMessages;
Sleep(5);
until Len=0;
finally
FileStream.Free;
end;
end;
http://data.cod.ru/134691
мультиплексора клиентов нет! счетчика принятых байт до FileStreamSize тоже нет.
__________________
Пишу программы за еду.
__________________
|