Модераторы: javastic, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как лучше организовать сообщения в сокетах 
:(
    Опции темы
Goduy
Дата 4.12.2006, 23:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 11.11.2006

Репутация: нет
Всего: нет



Поделитесь, кому не сложно, как лучше организовать сообщения в сокетах?
У меня сообщения состоят из:
byte type;
int sizeByteArray;
byte[] byteArray;

По типу сообщения type, я определяю в каком формате распознавать byteArray. У меня вопрос: как лучше сделать это распознавание? Можно конечно написать на каждый тип сообщения свой класс, который будет раскидывать байт массив данных по своим полям, но тогда придется очень много классов писать... можно конечно при непосредственной обработке сообщения распознавать массив, но тогда место в программе гадится smile
PM MAIL   Вверх
Dancer
Дата 5.12.2006, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 29.4.2005
Где: Nizhniy Novgorod

Репутация: 33
Всего: 37



попробуй вот здесь посмотреть, может поможет.
http://forum.vingrad.ru/topic-102968/0.html#entry783179

Я делал так, у меня был всегда массив байт, в нём первые N байт отводились под определённую информацию, Начальный идентификатор нового сообщения, тип и всё такое, плюс далее шёл размер передавайемой информации в байтах, сколько байт нужно считать (именно байт, а не объектов определённого типа). Далее когда получал, распарсивал всё, в зависимости от полученного тип. В одном сообщении можно было передавать разные типы, нужно лишь продумать более или менее нормальный протокол


--------------------
У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! smile
PM MAIL   Вверх
W0LF
Дата 5.12.2006, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

Репутация: 19
Всего: 20



а еще лучше битами оперировать



--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
Goduy
Дата 6.12.2006, 05:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 11.11.2006

Репутация: нет
Всего: нет



Это-то понятно.. Я имею ввиду, как как раз организовать эту разбивку байтов.

Но я вроде нашел способsmile
Я создал класс Message, в нем храню тип сообщения type и массив byte[]
Также есть функции для каждого типа сообщения соответственно, в параметрах которых подаются переменные, из которых собственно состоит сообщение, т.е. таким образом внешне мне абсолютно без разницы, каким образом этот класс разбивает массив принятых данных на отдельные переменные.

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

P.S. Жалко, что в Java нет указателей, как в С++ smile Хотя в этом есть и свои плюсы!

Добавлено @ 05:15 
И, кстати, есть ли в J2Me желательные ограничения на количество классов? Я имею ввиду, сильно ли будет различаться размер или работоспособность программы, если сделать не 10 классов, а 70?
PM MAIL   Вверх
W0LF
Дата 6.12.2006, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

Репутация: 19
Всего: 20



Цитата

что в Java нет указателей

Как это нет?  smile 


--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
W0LF
Дата 6.12.2006, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

Репутация: 19
Всего: 20



да, неправ я... таких как в сишке нет... smile


--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.0479 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.