我的netty客户端程序没有收到服务器的任何响应

时间:2018-03-12 12:50:12

标签: java server socket.io client netty

我已经使用netty IO编写了一个客户端 - 服务器程序,我可以在其中向服务器发送消息,服务器响应但不幸的是,我的Client Handler类中的任何侦听器方法都没有被调用,即...在客户端级别未收到响应。这是我的客户端用来向服务器发送请求消息的代码段。

ChannelFuture cf =this.ctx.channel().writeAndFlush(Unpooled.copiedBuffer(getEchoISOMessage(), CharsetUtil.ISO_8859_1));
this.ctx.writeAndFlush(Unpooled.EMPTY_BUFFER);
cf.awaitUninterruptibly();
if (!cf.isSuccess()) {
    System.out.println("Send failed: " + cf.cause());
} 

以下是用于从服务器接收任何响应消息的代码。

 @Override
public  void ChannelRead(ChannelHandlerContext ctx, ByteBuf in)
{
    System.out.println("Received a response from Server..");
    String responseMessage="";
    responseMessage=in.toString(CharsetUtil.ISO_8859_1);
    System.out.println("Received data as echo response"+responseMessage+"from "+ctx.channel().remoteAddress());

}

但是这个方法根本没有被调用。

1 个答案:

答案 0 :(得分:0)

您的处理程序扩展了什么?如果要从服务器接收响应,它应该是入站处理程序。您确定您的代码是使用@Override注释编译的吗? ChannelInboundHanlder中的回调方法是public void void channelRead(ChannelHandlerContext ctx, Object msg)。确保使用@Override进行注释并确保代码编译。然后您的客户端将/应该从服务器接收响应。如果没有帮助,请考虑共享完整代码。