Цитата:
Сообщение от Dukobpa3
Код 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(); // отправляем
|
Спасибо большое на шаг ближе к цели стал, да пока длину некуда присвоить по идеи если сокет видит биты идущие к нему он не ограничивает длину а ждет конца потока, ну все равно есть кокой-то баг с разбитием файла, объясню:
если картинка больше чем 3 кб (3072 байта), то наверно срабатывает какое-то ограничение что его бьет , что это может быть кто знает ?
Цитата:
Сообщение от Dukobpa3
Нужно знать ваш формат протокола чтоб точно ответить.
|
Код AS3:
socket_create(AF_INET, SOCK_STREAM, SOL_TCP)