Цитата:
Код AS3:
socket.writeUTFBytes(ba.length.toString());
|
О_о
Это что?
Добавлено через 12 минут
1. длину передавать не надо. Но зависит от серверного парсера. Нужно знать ваш формат протокола чтоб точно ответить.
2. Даже если длину и надо передавать, то это нифига не запись длины в виде строки.
3. Запись в сокет неправильная.
Код AS3:
// Подготавливаем сообщение.
var msg:ByteArray = new ByteArray(); // будущее сообщение
var ba:ByteArray = new ByteArray(); // временный буффер в который запишем картинку
var encoder:JPGEncoder = new JPGEncoder(100);
ba = encoder.encode(imm.bitmapData); // читаем картинку
msg.writeInt(ba.length); // если нужно длину указывать.
// Если не надо, то и второй байтаррей не нужен, можно прямо в msg записать.
// Просто без дополнительного БА - не сможем длину выудить.
// Ну и еще один момент - так мы запишем четыре байта длины.
// А могут быть варианты с одним байтом или двумя. Опять же от вашего протокола зависит.
msg.writeBytes(ba); // тело сообщения
msg.writeInt(0x00); // признак конца сообщения. Поидее не нужен, но надо уточнять как сервер парсит.
socket.writeBytes(msg); // записываем в сокет.
socket.flush(); // отправляем
RTFM