netty实现在后台发送消息到服务器,如何在netty框架中将服务器的响应发送回客户端...

我是netty的新手,我尝试使用netty框架实现聊天服务器。客户端将从命令行向服务器发送一个msg。当通过键盘读入接收到msg时,服务器将相应地响应。然而,我从服务器的消息无法到达客户端。我已经对聊天服务器netty框架做了很多研究,我发现的所有开源代码基本上都是echo服务器。我不太清楚是什么问题。我附上了部分

来自clientHandler的消息:

public void messageReceived(ChannelHandlerContext ctx, MessageEvent e)throws IOException {

System.out.println("Received message from server: " + e.getMessage());

BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));

ChannelFuture lastWriteFuture = null;

for(;;){

String sentence;

sentence = inFromUser.readLine();

if (sentence.toLowerCase().equals("shutdown")) {

channel.getCloseFuture().awaitUninterruptibly();

break;

}

lastWriteFuture =channel.write(sentence+ "\r\n");

}

//Wait until all messages are flushed before closing the channel.

if (lastWriteFuture != null) {

lastWriteFuture.awaitUninterruptibly();

}

channel.close().awaitUninterruptibly();

}

messageReceived from serverHandler:

public void messageReceived(ChannelHandlerContext ctx, MessageEvent e)throws IOException {

System.out.println("Received message from client: " + e.getMessage());

String msgclient = (String) e.getMessage();

if (msgclient.toLowerCase().equals("bye")) {

e.getChannel().close().awaitUninterruptibly();

shutdown();

}

BufferedReader infromserver =new BufferedReader( new InputStreamReader(System.in));

String serversentence;

serversentence = infromserver.readLine();

System.out.println(serversentence);

Channel c=e.getChannel();

ChannelFuture f =Channels.future(e.getChannel());

ChannelEvent responseEvent = new DownstreamMessageEvent(c, f, serversentence ,c.getRemoteAddress());

ctx.sendDownstream(responseEvent);

System.out.println(channels.size());

System.out.println(responseEvent);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值