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

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 21.06.2014, 15:44
Anabel вне форума Посмотреть профиль Отправить личное сообщение для Anabel Найти все сообщения от Anabel
  № 1  
Ответить с цитированием
Anabel

Регистрация: Apr 2013
Сообщений: 82
По умолчанию Передача числового массива через бинарный сокет (Java, JSON)

Есть у меня задача - модернизировать приложение, написанное в кадрах. Суть модернизации - передавать массивы через бинарный сокет. Так как переписывать всё приложение под классы долго, был найден легкий выход - написать отдельно класс, который принимает ответ сокета, ответ записывается в массив и приложение из массива считывает данные. Если брать передачу 1 элемента - всё получилось. А вот с передачей массива проблема. Прошу указать видимые неточности в коде:
1. Упаковка и отправка данных:
Код AS3:
function send(e:Event):void {
            // массив байт для посылки...
            var sendBytes:ByteArray = new ByteArray();
 
            // байты самого сообщения...
            var mBytes:ByteArray = new ByteArray();
            // запишем сюда массив...
            for (var i:int = 0; i < Danni.length; i++) {
                mBytes.writeUTFBytes(Danni[i]);
                trace("bytes.position is: " + mBytes.position);    
            }
            mBytes.writeUTFBytes(JSON.stringify(Danni));
 
            // запишем длину сообщения...
            sendBytes.writeInt(mBytes.length);
            // запишем сам массив байт сообщения...
            sendBytes.writeBytes(mBytes);
 
            // отошлем байты...
            _socket.writeBytes(sendBytes);
            _socket.flush();
        }
2. Обработка сокетом:
Код:
....
linkForServer.sendMessage((double)decoded_message.get("Danni"), uid);
....
public void sendMessage(double Danni, long uid) throws Exception {
        // json с сообщением...
        JSONObject messageJSON = new JSONObject();
        messageJSON.put("uid", uid);
        messageJSON.put("Danni", Danni);
....
3. И обработка данных, что пришли:
Код AS3:
...
public var DanniM:Array
....
var decodedMessage:Object = JSON.parse(user_message);
for (var i:int = 0; i < decodedMessage.length; i++) {  
DanniM[i] = decodedMessage.Danni[i];
            }


Последний раз редактировалось Anabel; 21.06.2014 в 16:04.
Создать новую тему Ответ Часовой пояс GMT +4, время: 13:41.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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