繁体   English   中英

来自客户端的Apache Mina TCP会话跟踪

[英]Apache Mina TCP session tracking from client

我已经使用Apache Mina创建了一个TCP客户端。 我添加了一个while循环来不断检查端口的活动性。 一旦服务器端的连接建立,环路就中断了,连接就建立了。 我从将来获得会议并使用它进行交流。 有一个更好的方法吗。 而不是循环,我可以要求连接等到它建立起来。

 while(true){
   try {
 ConnectFuture future = ioConnector.connect(new InetSocketAddress(Port),
            new TriggerReceiverHandler(), SOCKET_CONFIG);
    System.out.println("Message Receiver started and listening on port "+ Port);
Thread.sleep(1000);
                session = future.getSession();
                if(session != null)
                    break;
            } catch (InterruptedException e) {
                e.printStackTrace();
            }catch(Exception ce){
                if(ce.getCause() instanceof ConnectException)
                System.out.println("Retrying connection");
            }
        }

另一个问题是,如果服务器关闭,并且我希望服务器一直等待连接直到启动,我该怎么办?

答案是:到目前为止,这是不可能的,因为只有在我们尝试连接时才知道连接状态。 一种修改是代替Thread.sleep(1000); 我们可以在1.0+版本中添加future.join() ,或者在2.0+版本中添加针对未来的监听器

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM