![]() |
|
Модераторы: javastic, AntonSaburov |
![]()
|
|
| Goduy |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 11.11.2006 Репутация: нет Всего: нет |
Поделитесь, кому не сложно, как лучше организовать сообщения в сокетах?
У меня сообщения состоят из: byte type; int sizeByteArray; byte[] byteArray; По типу сообщения type, я определяю в каком формате распознавать byteArray. У меня вопрос: как лучше сделать это распознавание? Можно конечно написать на каждый тип сообщения свой класс, который будет раскидывать байт массив данных по своим полям, но тогда придется очень много классов писать... можно конечно при непосредственной обработке сообщения распознавать массив, но тогда место в программе гадится |
|||
|
||||
| Dancer |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 29.4.2005 Где: Nizhniy Novgorod Репутация: 33 Всего: 37 |
попробуй вот здесь посмотреть, может поможет.
http://forum.vingrad.ru/topic-102968/0.html#entry783179 Я делал так, у меня был всегда массив байт, в нём первые N байт отводились под определённую информацию, Начальный идентификатор нового сообщения, тип и всё такое, плюс далее шёл размер передавайемой информации в байтах, сколько байт нужно считать (именно байт, а не объектов определённого типа). Далее когда получал, распарсивал всё, в зависимости от полученного тип. В одном сообщении можно было передавать разные типы, нужно лишь продумать более или менее нормальный протокол -------------------- У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! |
|||
|
||||
| W0LF |
|
|||
![]() alexander lonsky ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1164 Регистрация: 9.2.2006 Где: Ukraine.Dnepropet rovsk Репутация: 19 Всего: 20 |
а еще лучше битами оперировать
-------------------- iOS developer |
|||
|
||||
| Goduy |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 11.11.2006 Репутация: нет Всего: нет |
Это-то понятно.. Я имею ввиду, как как раз организовать эту разбивку байтов.
Но я вроде нашел способ Я создал класс Message, в нем храню тип сообщения type и массив byte[] Также есть функции для каждого типа сообщения соответственно, в параметрах которых подаются переменные, из которых собственно состоит сообщение, т.е. таким образом внешне мне абсолютно без разницы, каким образом этот класс разбивает массив принятых данных на отдельные переменные. Причем, каждая такая функция возвращает тру, если все нормально и фолс, если type не соответствует вызванной функции, что очень удобно при программировании и отладке. P.S. Жалко, что в Java нет указателей, как в С++ Добавлено @ 05:15 И, кстати, есть ли в J2Me желательные ограничения на количество классов? Я имею ввиду, сильно ли будет различаться размер или работоспособность программы, если сделать не 10 классов, а 70? |
|||
|
||||
| W0LF |
|
|||
![]() alexander lonsky ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1164 Регистрация: 9.2.2006 Где: Ukraine.Dnepropet rovsk Репутация: 19 Всего: 20 |
Как это нет? -------------------- iOS developer |
|||
|
||||
| W0LF |
|
|||
![]() alexander lonsky ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1164 Регистрация: 9.2.2006 Где: Ukraine.Dnepropet rovsk Репутация: 19 Всего: 20 |
да, неправ я... таких как в сишке нет...
-------------------- iOS developer |
|||
|
||||
![]()
|
FAQ раздела лежит здесь! |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java ME (J2ME) | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |