Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > 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 теперь - не знаю |