Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
ящюр
97 / 97 / 24
Регистрация: 15.03.2013
Сообщений: 517
Записей в блоге: 1
#1

Данные из принятого UDP пакета - Программирование Android

30.01.2014, 12:05. Просмотров 794. Ответов 2
Метки нет (Все метки)

Как вытащить данные из принятого UDP пакета? Есть буфер, например на 100 байт. Принимаю к примеру 37 байт, о чем говорит pack.getLength() . Но если создать буфер длиной pack.getLength() и выполнить pack.getData() то получим массив длиной равной размеру буфера, то есть 100 байт. Но если создать буфер длиной getLength() и скопировать побайтно из буфера нужное кол-во байт то получим то ,что нужно.
Java
1
2
3
4
5
6
7
data = new byte[100];
sock = new DatagramSocket(1889);
pack = new DatagramPacket(data, data.length);
byte[] a = new byte[pack.getLength()];
for (int v=0;v<a.length;v++) {
                            a[v]=data[v];
                        }
По мне это так называемый костыль. Проще можно? Или проще только сделать метод с выше описанным кодом , чтоб он возвращал новый массив нужной длины?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2014, 12:05     Данные из принятого UDP пакета
Посмотрите здесь:

Отправка пакета (UDP) - Программирование Android
День добрый Как организовать передачу пакета (UDP) из любого участка кода? Имеется в виду отправка пакета из любой Активити. ...

Вывод принятого сообщения (клиент-сервер) - Программирование Android
Всем привет ! Делаю клиента. (для сервера) Проблема в том, что принятые сообщения не отображаются, хотя они приходят (в дебагере их...

Ошибка подписи пакета - Программирование Android
Здравствуйте! Не получается подписать пакет, делаю так контекстное меню-&gt;Android tools-&gt;Export Signed Application Package, в результате...

Проверить установку пакета - Программирование Android
Добрый день всем! Меня интересует такой вопрос, у меня есть приложение и в приложение есть игровые монеты, теперь я хочу сделать, чтоб по...

Контрольная сумма TCP пакета - Программирование Android
Как вычислить контрольную сумму отправляемого TCP пакета на сервер? Ну например при помощи md5 как вычислить контрольную сумму? Какие...

Распаковка ресурсов из пакета на устройство - Программирование Android
Добрый день. Можно ли создать апк файл при запуске которого будет извлекать из себя файлы по определенному пути? Качать из интернета данные...

Разное имя пакета и приложения - Программирование Android
Импортировал проект. В манифесте указано название com.droidmatter.taskbear.app.MainActivity а в project explorer название MainActivity ....

Как получить layout с другого пакета? - Программирование Android
Здравствуйте, делаю скин для приложения, вопрос состоїт в том могу ли я взять Layout з другого пакета, тойсть есть первая програма...

Добавить папку в середину имени пакета - Программирование Android
Всем привет! Столкнулся с интересной проблемой: надо сменить имя пакета, и все было бы не так плохо, если небыло бы необходимости...

Что такое инсталяция пакета в андроиде? - Программирование Android
Кто-нибудь находил инфу о том что такое инсталяция пакета в андроиде? После винды привык, что инсталяция - это в первую очередь...

Подкючение пакета com.google.android.maps - Программирование Android
Доброго времени суток. Столкнулся с проблемой, никак не могу подключить пакет com.google.android.maps к приложению. Уже и книгу с...

Android Studio - ошибка разбора пакета - Программирование Android
Добрый день! Подскажите пожалуйста, почему возникает ошибка разбора- &quot;Ошибка при синтаксическом анализе пакета&quot; при запуске его на Андроид...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
angryrobot
Командир зеленых роботов
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 564
30.01.2014, 15:15     Данные из принятого UDP пакета #2
Если уж вам так нужен массив размер которого строго равен количеству принятых байт, то ничего другого придумать нельзя. Могу только посоветовать копировать массив через специальный метод который работает в разы быстрей чем побайтовое копирование:
Java
1
System.arraycopy(src, srcPos, dst, dstPos, length);
А чем вас не устраивает что буфер больше чем количество реально принятых байт? Как по мне, так это обычное дело
ящюр
97 / 97 / 24
Регистрация: 15.03.2013
Сообщений: 517
Записей в блоге: 1
30.01.2014, 15:19  [ТС]     Данные из принятого UDP пакета #3
Да как бы не то чтобы не нравиться. Просто думал, что есть что-то более простое (сравниваю с C#)
Yandex
Объявления
30.01.2014, 15:19     Данные из принятого UDP пакета
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru