Главная страница
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.051 c
15-1177291363
koha
2007-04-23 05:22
2007.05.27
Прочитал Джеффри РИХТЕР "Создание эффективных WIN32-приложений"


9-1149708555
Yokmombyk
2006-06-07 23:29
2007.05.27
Функция шанса


3-1173435842
emfw
2007-03-09 13:24
2007.05.27
Фильтр и поиск


15-1178094719
ocean
2007-05-02 12:31
2007.05.27
Парфюмер


9-1149530476
-=OpeR=-
2006-06-05 22:01
2007.05.27
Помогите с алгоритм оптимального размещения