![]() |
Socket+string
1. Есть сокет подключенный к серверу. Сервер отправляет пакет с некоторым количеством строк. Строка завершается 0. Как на AS3 прочитать строки?
2. Для того чтобы отправить строку из AS3 на сервер делаю так: Код:
var s:String = "test"; |
Если все передается с завершающим нуль-байтом и нет бинарных данных, то почему бы не работать с прежним XMLSocket?
|
Кроме строки могут быть любые другие данные.
|
Тогда нуль-байт тут вообще не причем. Метод writeObject записывает объект в виде последовательности байтов в формате AMF serialized format.
И для того чтобы корректно читать эту информацию на стороне сервера, не надо изобретать велосипед, а подключить библиотеку понимающую AMF. |
Зачем ты пишешь объект? напиши байты по одному.
|
Попробую сформулировать вопрос по другому:
1. Записать string в socket и завершить нулевым символом 2. Прочитать из socket с определенной позиции string, который завершается нулевым символом Пункт 1 уже работает, через ByteArray, можно еще попробовать записывать каждый символ отдельно С пунктом 2 пока не знаю, можно считывать по символу и добавлять к строке. Кстати в документации сказано, что AS3 использует UTF16 строки (каждый символ по 2 байта). При получении строки, отправленной из AS3, на сервере, можно читать по одному байту и все будет правильно. Почему? |
А почему ты не юзаешь writeMultibyte, к примеру?
|
Проверил writeMultibyte, работает нормально. Остается чтение строки. Есть readMultibyte, но там необходимо указывать длину строки. Наверное придется ее указывать при отправке со стороны сервера.
|
А bytesAvailable для чего?
Все ответы на вопросы описаны в хелпе, собственно. |
А если отправляю целую структуру данных? Несколько различных строк, потом еще что-нибудь.
|
| Часовой пояс GMT +4, время: 05:23. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.