Показать сообщение отдельно
Старый 29.10.2013, 14:34
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 3  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Цитата:
Код 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
__________________
Кто к нам с чем для чего - тот у нас того от того.