Главная страница
    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.048 c
15-1178042772
ShadowMan
2007-05-01 22:06
2007.05.27
TFileStream


4-1166908044
Drone
2006-12-24 00:07
2007.05.27
Потоки и сообщения от одного к другому


2-1177753484
Konus
2007-04-28 13:44
2007.05.27
кодировка DOS


3-1173273530
Silver...
2007-03-07 16:18
2007.05.27
Изменить порядок записей в DBGrid


5-1154367878
anton773
2006-07-31 21:44
2007.05.27
добавление новых свойств webbrowser





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