2017-08-27 2 views
0

En fait je peux envoyer et recevoir des objets String avec netty mais je ne peux envoyer aucun objet comme un message ISO et je ne peux pas trouver la raison de cela. c'est la méthode start dans le clientComment envoyer un message ISO Objet du client au serveur Netty en java

public void start() { 
    EventLoopGroup group = new NioEventLoopGroup(); 

    try { 
     Bootstrap bootstrap = new Bootstrap().group(group) 
       .channel(NioSocketChannel.class) 
       .handler(new ClientAdapterInitializer()); 

     Channel channel = bootstrap.connect(server, port).sync().channel(); 

     channel.write("Hi\n"); 


     IsoMessage o = new IsoMessage(); 
     o.setType(0200); 
     o.setBinary(true); 
     Teacher t = new Teacher(1, "hhhhh"); 
     //ObjectEncoder encoder = new ObjectEncoder(); 
     o.setField(3, new IsoValue(IsoType.BINARY, group, 1100)); 
     channel.write(t); 
     channel.flush(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } finally { 
     // group.shutdownGracefully(); 
    } 
} 

et serveur @Override public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { IsoMessage is=(IsoMessage) msg; System.out.println(""+is.getType()); //ByteBuf byteBuf = (ByteBuf) is; //System.out.println(""+byteBuf.toString()); //logger.info("message : {} " + //byteBuf.toString(Charset.defaultCharset())); channels.writeAndFlush(msg); }

+0

Comment votre pipeline ressemble-t-il? – Ferrybig

+0

jusqu'à maintenant je ne l'ai pas fourni –

Répondre

0

Vous devriez vérifier ce que le ChannelFuture du write vous dit. Il sera probablement échoué avec une exception qui vous dira plus pourquoi il n'a pas fonctionné