Показать сообщение отдельно
  #6  
Старый 06.12.2011, 14:04
Аватар для NumLock
NumLock NumLock вне форума
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 тоже нет.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием