Форум: "Сети";
Текущий архив: 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