Показать сообщение отдельно
Старый 14.09.2011, 13:30
ricoshet вне форума Посмотреть профиль Отправить личное сообщение для ricoshet Найти все сообщения от ricoshet
  № 5  
Ответить с цитированием
ricoshet

Регистрация: Sep 2011
Сообщений: 3
Спасибо помогло.... Чудеса на виражах... Изменил исходную задачу - передать только Стринговую строку без параметров:
Код:
package ua.dima;

option java_package = "ua.dima";

message Test1 {
 optional string name = 1;
}
Код Клиента на АС3:
Код AS3:
try {
 
				var test:Test1 = new Test1();
				test.name = "Hello, world";
 
				var buffer:ByteArray = new ByteArray();
				test.writeTo(buffer);
				trace(buffer.length);
 
				client.writeBytes(buffer);
				client.flush();
 
			}catch (e:Error) {
				trace(e.message);
			}
Код Сервера:
Код:
try{
            DataInputStream in = new DataInputStream(client.getInputStream());
            byte[] b = new byte[14];
            //while(true){
                System.out.println(in.read(b));
                System.out.println(b);
                
                TestMessage.Test1 test = TestMessage.Test1.parseFrom(b);
                System.out.println(test.getName());
            //}
            
            
        } catch(Exception ex){
            ex.printStackTrace();
        }
И в итоге получаю результат:
14 -- размер буфера
[B@1503a3 -- буфер
Hello, world -- Мессадж....
И что было не так в прошлом варианте?

Добавлено через 8 минут
Может кому-то пригодится...
Ошибка была в размере буффера на сервере.
Переделал по примеру incoob - все заработало...