Главная страница
    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.038 c
1-1175191667
Kolan
2007-03-29 22:07
2007.05.27
Как сделать Wizzard?


15-1177583454
CCili
2007-04-26 14:30
2007.05.27
2 взаимоисключающих блока информации на сайте лента.вру :)


2-1178534632
Kostafey
2007-05-07 14:43
2007.05.27
Использование результата запроса Select в Update


15-1177187738
Petr V.Abramov
2007-04-22 00:35
2007.05.27
Теорема Ферма доказана или нет?


15-1177432649
Nucer
2007-04-24 20:37
2007.05.27
RewriteRule в Apache





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский