ruirui610
2015-05-25 11:35
采纳率: 40%
浏览 1.9k
已采纳

JAVA NIO双向通信问题

我想要是使用JAVA NIO做一个客户端、服务器**双向通讯**的东东,但是我遇到的问题是:

服务器无法想客户端发送消息,类似这样的方式并不是我想要的:

 while(it.hasNext()) {  
                    SelectionKey key = it.next();  
                    if(key.isAcceptable()) {  
                        log.info("Server: SelectionKey is acceptable.");  
                        handler.handleAccept(key);  
                    } else if(key.isReadable()) {  
                        log.info("Server: SelectionKey is readable.");  
                        handler.handleRead(key);  
                    } else if(key.isWritable()) {  
                        log.info("Server: SelectionKey is writable.");  
                        handler.handleWrite(key);  
                    }  
                    it.remove();  

我的数据是从前台产生的,**数据产生的时间比较随机**,因此并不能像上述一下作为反馈信息发送回去,那么这种情况该怎么解决呢?

我真的没有C币啊,求懂的人帮下忙啦~~~~

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • sirnuo 2015-05-27 02:29
    已采纳

    服务器是不能主动发送消息到客户端的。
    只能是客户端没隔一段时间,比如1s,就请求一次服务器,获取服务器的消息,服务器才能和客户端通信。
    或者 客户端和服务器一直保持sockeet连接,建立心跳。

    已采纳该答案
    打赏 评论
  • wutiandengdai 2015-05-28 15:33

    有多种模式 ,建议直接使用Mina框架。
    如最经常用的,在会话打开后SessionOpen时新建一个独立线程,定时向客户端发送数据。

    打赏 评论