![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Здравствуйте, возник такой вопрос:
Я начал писать клиент-серверное приложение и решил передавать данные с помощью разных структур. В интернете читал, искал примеры, но подходящие были связаны лишь с работой со строками. Но у меня же всё иначе. Для начала первый вопрос: 1.1 например имеем заранее известную структуру, допустим такую: Код:
TMyStructure = packed record A:Byte; B:Single; C:Integer; end; 1.2 Учесть, что если вдруг сразу не придет целиком одна структура. (т.е. её необходимо дочитать до полной структуры). 2) всё также, как и в первом вопросе, но только мы допустим имеем несколько различных структур, как их правильно принять и разделить ? ______ Исходя из того, что я читал, мне получается нужно ввести какую-то уникальную сигнатуру каждого пакета(или точнее структуры), что если структура допустим первая, то у нее: Код:
TMyStructure = packed record sign:Byte; // Сигнатура A:Byte; B:Single; C:Integer; end; Код:
TMyStructure2 = packed record sign:Byte; // Сигнатура A:String[20]; B:Integer; C:array[1..10] of Single; end; В общем нужен какой-то разделить или что-то подобное сигнатуры. И ещё вопрос насчет пункта 1.2: если структура небольшого размера, то вообще возможно ли такое, что она прийдет не вся целиком ? скорее всего возможно, поэтому я и задал этот вопрос. Помогите пожалуйста разобраться. ___ Ах да, ещё у меня такая мысль была, что если передавать массив байт, а в конце например сигнатуру FF FF FF, но будет довольно сложно каждый тип данных привести из байт к своему, например тотже Single из байт в Single и наоборот, также с каждым типом. Хотя эта идея мне кажется интересной. Помогите может какие идеи насчет этого есть. Т.к. Этот способ кажется попроще, но и возникает проблема с преобразованием байт в соответствующие типы. С нетерпением жду ответов. Если Вы находите ошибки, исправить которые дело долгое и нудное, ничего не делайте - просто внесите их в список особенностей ![]() Последний раз редактировалось Oleg, 20.02.2011 в 16:51. |