Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2007.05.27;
Скачать: [xml.tar.bz2];

Вниз

Как считать с 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.043 c
15-1177613059
Некроман_тус
2007-04-26 22:44
2007.05.27
Архив...


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


4-1166752703
SKIPtr
2006-12-22 04:58
2007.05.27
Как узнать что комп включили


15-1177419938
NoNameUser
2007-04-24 17:05
2007.05.27
Анкета


15-1177746092
iXT
2007-04-28 11:41
2007.05.27





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский