Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
12 / 12 / 5
Регистрация: 03.06.2016
Сообщений: 169

Манипуляция с байтами

17.07.2017, 22:15. Показов 1464. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
есть массив байт
C#
1
byte[] b2 = new byte[1024];

в него планируется копировать, ДОПУСТИМ, первые 49 байт какая нибудь команда, с 50 по 149 байт служебной информации, с 150 байта какие нибудь данные и отправлять на сервер, тот должен принять пакет и все это дело понять.

с 150 байта понятно дело что информация будет не контролируемой и надо будет смотреть каждый байт и убирать пустые, а до 149 байта она будет контролируемой и команду до 49 байта можно представить в виде connect___, disconnect, get_______, тоесть одинаковой длинны.

Дак вот, как лучше сделать сделать одинаковые команды или переделывать массив байт игнорировав пустые байты?

Интересует только скорость.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.07.2017, 22:15
Ответы с готовыми решениями:

Работа с байтами
Добрый вечер.подскажите пожалуйста самый рациональный способ перевода двух байтов. например у меня есть "с0 9e". Нужно получить...

Работа с байтами
Здравствуйте! Решил сделать никому не нужную и бесполезную программу, суть которой - хранение информации в виде изображения. Каждый...

Работа с байтами в С++
В каком виде лучше работать с байтами? В виде целочисленных типов , либо возможно unsigned char ? В С++ есть такая интересная штука как...

5
Эксперт .NET
 Аватар для Usaga
14314 / 9399 / 1355
Регистрация: 21.01.2016
Сообщений: 35,450
18.07.2017, 05:33
Лучший ответ Сообщение было отмечено MINO как решение

Решение

MINO, команду можно завершать символом-терминатором (к примеру 0х00), тогда она (команда) может быть любого размера. Служебная информация имеет фиксированный размер - с этим проблем нет. Балласт (данные) можно предварять словом (байт, два байта, четыре байта - сколько надо) содержащим размер идущих следом данных.

Не надо передавать пустые данные, чтобы их потом побайтно перебирать, это - глупо.

Тогда формат пакета получится примерно такой:
КОМАНДА, 0х00, 99 байт служебной информации, 2 байта размера данных, данные

Ну или с заголовком:
1 байт размера команды, 1 байт размера служебной информации, 2 байта размера данных, КОМАНДА, служебная информация, данные

2 байта для размера данных выбраны исходя из максимального размера пакета в килобайт.
2
12 / 12 / 5
Регистрация: 03.06.2016
Сообщений: 169
18.07.2017, 08:21  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Тогда формат пакета получится примерно такой:
КОМАНДА, 0х00, 99 байт служебной информации, 2 байта размера данных, данные
да, но сервер ведь не знает где этот пустой байт, и опять же придется перебирать байты.

Цитата Сообщение от Usaga Посмотреть сообщение
1 байт размера команды, 1 байт размера служебной информации
склоняюсь к этому решению
0
Эксперт .NET
 Аватар для Usaga
14314 / 9399 / 1355
Регистрация: 21.01.2016
Сообщений: 35,450
18.07.2017, 08:44
Цитата Сообщение от MINO Посмотреть сообщение
да, но сервер ведь не знает где этот пустой байт, и опять же придется перебирать байты.
Ну да, но это не так сложно. Такой подход вполне себе практикуется.
0
12 / 12 / 5
Регистрация: 03.06.2016
Сообщений: 169
18.07.2017, 09:57  [ТС]
решили сделать класс команд в которых будут седеть по одному байту в команде, мне кажется это быстрей будет, чем каждый пакет будет в цикле обрабатываться, да и пакеты меньше весить будет.
0
Эксперт .NET
 Аватар для Usaga
14314 / 9399 / 1355
Регистрация: 21.01.2016
Сообщений: 35,450
18.07.2017, 09:58
MINO, ну да, команду в виде некоего номера будет проще прочитать, чем в виде строки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.07.2017, 09:58
Помогаю со студенческими работами здесь

Работа с байтами =)
Мне вот надо реализовать такую штуку: в листбоксе список файлов, нужно их вписать в один файл так: 1ые 4 байта: paul кол-во файлов. ...

Манипуляция с строками
подскажите пожалуйста, как сделать, что бы нормально работало? - Создать форму с 2-мя полями ввода строк и кнопкой, при нажатии которой...

Манипуляция с ячейками !
Здравствуйте, очень нужна ваша помощь есть ячейка в таблице, у которой прописаны мин макс значения, это ширина и высота, она их не...

Манипуляция с ссылками
Привет, скажите как сделать такое есть переменная $site в ней в одну строку могут быть ссылки на сайты такого вида через пробел или...

Частотная манипуляция
Как переделать схему, чтобы битовая последовательность была 1100111? У меня мозг взрывается, я вообще ни бум-бум. Помогите пожалуйста


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru