Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 18.04.2012, 17:17
anmelegov вне форума Посмотреть профиль Отправить личное сообщение для anmelegov Найти все сообщения от anmelegov
  № 1  
Ответить с цитированием
anmelegov
[+4 07.04.12]
[+1 20.01.12]

Регистрация: Nov 2009
Адрес: Украина, Славутич
Сообщений: 263
По умолчанию как пользоваться byteArray.readInt()?

собственно вопрос в заголовке... у меня есть byteArray, в нем числа, если я читаю из него 4 байта в другой byteArray, а потом тот byteArray читаю методом readInt, то получается, а если я из исходного массива просто несколько раз вызываю readInt, то первое число читается, а потом какая-то фигня идет дальше... такое ощущение что он сдвигает поинтер не на 4 байта

Старый 18.04.2012, 17:24
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 2  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Так и читается.
Код AS3:
// имеем 8 байт
bt.readInt();
// осталось 4 байта
bt.readInt();
// массив bt пуст
Иными словами, у Вас после первых четырех байт идет вовсе не инт, а short, byte, UTFString или нечто иное.
__________________
тут я

Старый 18.04.2012, 17:24
anmelegov вне форума Посмотреть профиль Отправить личное сообщение для anmelegov Найти все сообщения от anmelegov
  № 3  
Ответить с цитированием
anmelegov
[+4 07.04.12]
[+1 20.01.12]

Регистрация: Nov 2009
Адрес: Украина, Славутич
Сообщений: 263
очень сложно написал, напишите мне кодом просто чтоб я понял... в строке идет 2 пропуска строки, потом идут 4 инта, как это прочитать?

Добавлено через 1 минуту
Цитата:
Сообщение от КорДум Посмотреть сообщение
Так и читается.
Код AS3:
// имеем 8 байт
bt.readInt();
// осталось 4 байта
bt.readInt();
// массив bt пуст
Иными словами, у Вас после первых четырех байт идет вовсе не инт, а short, byte, UTFString или нечто иное.
как посмотреть структуру массива который приходит?

Добавлено через 3 минуты
когда я делаю readBytes(x, offset), то offset такое ощущение что не сначала "сдвигает" окно, а сконца

Старый 18.04.2012, 17:32
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 4  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Вот пример:
Код AS3:
//пакет выглядит так:
//type (1b) length (2b) message (Nb)
type = byteArray.readByte();
length = byteArray.readShort();
message = byteArray.readBytes(0, length);
Это не псевдокод. При чтении byteAviables (или как там это свойство) уменьшается на количество считанных байтов. "Каретка" четния тоже смещается.

Добавлено через 48 секунд
Цитата:
в строке идет 2 пропуска строки
А это я не понял.
__________________
тут я

Старый 18.04.2012, 17:35
anmelegov вне форума Посмотреть профиль Отправить личное сообщение для anmelegov Найти все сообщения от anmelegov
  № 5  
Ответить с цитированием
anmelegov
[+4 07.04.12]
[+1 20.01.12]

Регистрация: Nov 2009
Адрес: Украина, Славутич
Сообщений: 263
в сокет приходит сначала 2 перевода каретки, потом 16-тиричное число, а потом нужные мне байты

Старый 18.04.2012, 17:39
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 6  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Перевод каретки виндовый или юниксовый? В первом случае это 2 байта, во втором 1 на один перевод каретки.
Код AS3:
readShort();
readShort();
var numb:int = readInt();
var str:String = readUTFBytes(0, bytesAvailable);
Это если за раз пришел один пакет, полностью и не склеенный.
__________________
тут я

Старый 18.04.2012, 17:43
anmelegov вне форума Посмотреть профиль Отправить личное сообщение для anmelegov Найти все сообщения от anmelegov
  № 7  
Ответить с цитированием
anmelegov
[+4 07.04.12]
[+1 20.01.12]

Регистрация: Nov 2009
Адрес: Украина, Славутич
Сообщений: 263
можно как-нибуть во flashDevelop посмотреть структуру массива который приходит на сокет? или надо на угад парсить? я даже не знаю какой там endian

Старый 18.04.2012, 17:45
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 8  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
endian посмотреть можно, поставив брейкпоинт и глянув в дебаггере. А вот содержимое, к сожалению, нет. Самого это несколько разочаровывало, приходилось наугад и трейсами.
__________________
тут я

Старый 18.04.2012, 17:46
anmelegov вне форума Посмотреть профиль Отправить личное сообщение для anmelegov Найти все сообщения от anmelegov
  № 9  
Ответить с цитированием
anmelegov
[+4 07.04.12]
[+1 20.01.12]

Регистрация: Nov 2009
Адрес: Украина, Славутич
Сообщений: 263
трейсом байты не выводятся =)

Старый 18.04.2012, 17:51
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 10  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Написать трейсилку байтаррея на полчаса с перекуром задачка.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Создать новую тему Ответ Часовой пояс GMT +4, время: 15:26.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 15:26.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.