![]() |
Считывать из сокета в ByteArray
Привет,
мой мувик считывает через сокет от сервера (на Перле) сначала длину UTF строки как unsigned short и потом саму эту строку. Сначала я пытался делать просто: Код AS1/AS2:
Я поискал решения в интернете и похоже что единственный надежный способ - это читать _socket.bytesAvailable байтов в отдельный ByteArray и когда видишь, что там достаточно данных, вычитывать их оттуда нужными методами (типа readUTF, readShort, readObject и т.д.). И вот мой новый код: Код AS1/AS2:
приходят например сразу 2 строки с префиксами. Я добавил пару trace() и вижу что не работает мой код, в котором я пытаюсь убрать из ByteArray те байты, которые я уже обработал: Код AS1/AS2:
Т.е.: если в ByteArray две UTF-строки с префиксами и первую строку я обработал, то как мне ее убрать оттуда? Спасибо Алекс |
Код AS3:
|
Нашел ответ, я копировал байты не в ту сторону, надо так:
Код AS1/AS2:
Цитата:
пока Алекс |
Не забывайте, что данные могут прийти не полностью за один проход.
|
а почему могут прийти не полностью?
(вопрос тож актуален) |
потому что сокеты пхп например разрезают информацию в случае заполнения буффера отправки.
|
Цитата:
|
Цитата:
|
| Часовой пояс GMT +4, время: 18:59. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.