Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > idUDPClient в Delphi 2009


Автор: alisa7 3.2.2011, 14:25
Доброго времени суток!
Есть проблема при переходе с Delphi 7 на 2009.
Мне нужно передать структуру данных по UDP.
  type
  k_rec = packed record
    id    : integer;
    fio   : string[150];
    short_fio   : string[100];
    dev   : integer;
    res   : string[10];
    namres: string[100];
  end;

В 7 все было просто 
отправила
  UDPClient.SendBuffer(a,sizeof(a));
получила
  Adata.Read(b, SizeOf(b)*2);

Сейчас параметры функций изменились. Так не получается передать. Если кто-то сталкивался - помогите, плиз!
Найти ничего не удалось...

Автор: Snowy 3.2.2011, 14:28
Для 2009 не string, а AnsiString

Автор: alisa7 3.2.2011, 14:31
Ansistring - где?

Добавлено через 1 минуту и 55 секунд
изменилось описание функции 
    procedure SendBuffer(const AHost: string; const APort: TIdPort; const ABuffer: TIdBytes); overload; virtual;
как теперь передавать - не пойму

Автор: salik 3.2.2011, 15:15
alisa7 дай взглянуть на процедуры отправки и получения данных

Автор: alisa7 3.2.2011, 15:22
отправляла так
procedure TMainForm.SendBtnClick(Sender: TObject);
begin
  a.fio := SendEdit.Text;
  a.short_fio := '';
  a.dev := 0;
  a.res := '';
  a.namres := '';
  UDPClient.SendBuffer(a,sizeof(a));
  SendEdit.Clear;
end;
принимала так
procedure TMainForm.UDPServerUDPRead(Sender: TObject; AData: TStream;
  ABinding: TIdSocketHandle);
begin
  Adata.Read(b, SizeOf(b)*2);
  Memo.Lines.Add('Ответ сервера ' + ABinding.PeerIP + ': ' + b.fio);
end;

Добавлено через 1 минуту и 37 секунд
а теперь 
    procedure SendBuffer(const AHost: string; const APort: TIdPort; const ABuffer: TIdBytes); overload; virtual;

  procedure TForm4.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
  AData: TBytes; ABinding: TIdSocketHandle);

 и как с  TIdBytes теперь - не знаю

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)