Ну, теперь сервер все читает корректно...на досуге надо будет почитать исходники blazeDS, чтобы понять как они парсер написали, но пока более приземленные дела - отправка сообщений.
Увы, просто:

Код:
amf3Output.writeObject(OutputMessage);
не проходит, клиент выдает ошибку Error #2030: End of File detected. На одном форуме подсмотрел вариант с использованием ByteArrayOutputStream, реализовал у себя:

Код:
objectOut = socket.getOutputStream();
byteBuffer= new ByteArrayOutputStream();
amf3Output.setOutputStream(byteBuffer);
amf3Output.setOutputStream(objectOut);
И отправка:

Код:
amf3Output.writeObject(OutputMessage);
objectOut.write(byteBuffer.toByteArray());
objectOut.flush();
В итоге первое сообщение читалось отлично, последующие - крякозябрами, заметил что количество байт на входе постоянно растет...добавил byteBuffer.reset();, проблема осталась, кроме того клиент выдавал ошибку Error #2006: Index Out of bound при чтении. В итоге решил таким костылем, в цикле передачи:

Код:
byteBuffer = new ByteArrayOutputStream();
amf3Output.setOutputStream(byteBuffer);
amf3Output.writeObject(OutputMessage);
objectOut.write(byteBuffer.toByteArray());
objectOut.flush();
Не знаю, насколько это коректно с точки зрения компилятора Java, но оно хотя бы работает

... если я что-то делаю неверно - поправте пожалуйста.