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

Вниз

Как считать с UDP структуру в соответствии с её описанием   Найти похожие ветки 

 
mrvik   (2006-11-17 14:47) [0]

Мне по сети приходит некая посылка с вот такой структурой ---
SUPERVICES = record
  bCodPhaseSupServices : byte;
  bDescriptionService : array [1..3] of byte;
  bReserved : array [1..4] of byte;
end;

ZGL_MSG = record
  Length : Cardinal;
  wReserved : array [1..16] of word;
  KodMessage : word;
end;
Message_For_Po = record
  ZglNet : ZGL_MSG;
  wNumberOfCall : word;
  wCondNumberObj : word;
  bTypeOfObj : byte;
  bPrizOfSelection : byte;
  bAttrOfConnection : byte;
  bKodOfOperation : byte;
  cTelNumberA : array [1..20] of char;
  cTelNumberB : array [1..20] of char;
  bReserved1 : byte;
  bReserved2 : byte;
  sZDateStart  : array [1..12] of char;
  cTimeOfMessage : array [1..8] of char;
  cDlit : array [1..8] of char;
  cFileName : array [1..12] of char;
  szRegNomer : array [1..16] of char;                 // 16
//    bReserved3 : Dword;                               //????
  dwSite : CTRLSITE;
  wSupServ : SUPERVICES;
  wReserved4 : word;
  dwReserved5 : Dword;
  cSMS : array [1..14] of char;
  wTotal : word;
  wCount : word;
end;
Единственный способ который у меня вроде получается это принять её через idUDPServer а там она AData:TBytes (это Indi10 в BDS2006 использовать другую среду не могу по ряду причин да и особо не нужно). Я не понимаю как правильно в Delphi обработать получаемые данные в соответствии с Форматом. В Indi10 AData:TStream и у меня всё отлично работает, но как говорил уже я должен использовать лицензионный BDS2006.


 
Dmitrij_K   (2006-11-17 15:05) [1]

Так принимай в Tbytes
потом Move() в свою переменную


 
untermensch   (2006-11-17 15:41) [2]

Можно принимать и в эту структуру, TBytes - это ж кусок памяти из байтов, всегда можно подставить адрес экземпляра структуры вместо него, или указатель на данные в TBytes привести к указателю на данную структуру.
А что касается move - то это дольше, и лучше пользовать CopyMemory - более приятная функция.


 
mrvik   (2006-11-17 18:07) [3]

Спасибо большое!!! Как обычно всё элементарно если знать как делать. На остальных форумах ответа не получил а анологичный вопрос видел.



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

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

Наверх




Память: 0.47 MB
Время: 0.048 c
6-1164120699
Ш-К
2006-11-21 17:51
2007.05.27
Редактирование в TWebBrowser


2-1178710015
DevilDevil
2007-05-09 15:26
2007.05.27
Быстрая загрузка Delphi


3-1173291288
Makhanev Alexander
2007-03-07 21:14
2007.05.27
Прогарммно создать MS SQL базу из sql скрипта


2-1178814419
webpauk
2007-05-10 20:26
2007.05.27
рисование в treeview


3-1173133101
Mr. D.
2007-03-06 01:18
2007.05.27
Политика безопасности в Firebird