Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Передача числового массива через бинарный сокет (Java, JSON) (http://www.flasher.ru/forum/showthread.php?t=208249)

Anabel 21.06.2014 15:44

Передача числового массива через бинарный сокет (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];
            }



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

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