![]() |
|
||||||||||
|
|||||
|
1. Есть сокет подключенный к серверу. Сервер отправляет пакет с некоторым количеством строк. Строка завершается 0. Как на AS3 прочитать строки?
2. Для того чтобы отправить строку из AS3 на сервер делаю так: Почему в результате перед нулевым символом появляются два байта, каждый раз разные? |
|
|||||
|
Регистрация: Oct 2003
Адрес: Москва
Сообщений: 328
|
Если все передается с завершающим нуль-байтом и нет бинарных данных, то почему бы не работать с прежним XMLSocket?
|
|
|||||
|
Кроме строки могут быть любые другие данные.
|
|
|||||
|
Регистрация: Oct 2003
Адрес: Москва
Сообщений: 328
|
Тогда нуль-байт тут вообще не причем. Метод writeObject записывает объект в виде последовательности байтов в формате AMF serialized format.
И для того чтобы корректно читать эту информацию на стороне сервера, не надо изобретать велосипед, а подключить библиотеку понимающую AMF. |
|
|||||
|
Попробую сформулировать вопрос по другому:
1. Записать string в socket и завершить нулевым символом 2. Прочитать из socket с определенной позиции string, который завершается нулевым символом Пункт 1 уже работает, через ByteArray, можно еще попробовать записывать каждый символ отдельно С пунктом 2 пока не знаю, можно считывать по символу и добавлять к строке. Кстати в документации сказано, что AS3 использует UTF16 строки (каждый символ по 2 байта). При получении строки, отправленной из AS3, на сервере, можно читать по одному байту и все будет правильно. Почему? |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
А почему ты не юзаешь writeMultibyte, к примеру?
|
|
|||||
|
Проверил writeMultibyte, работает нормально. Остается чтение строки. Есть readMultibyte, но там необходимо указывать длину строки. Наверное придется ее указывать при отправке со стороны сервера.
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
А bytesAvailable для чего?
Все ответы на вопросы описаны в хелпе, собственно. |
|
|||||
|
А если отправляю целую структуру данных? Несколько различных строк, потом еще что-нибудь.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 14:07. |
|
|
« Предыдущая тема | Следующая тема » |
|
|