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

时间:2011-01-10 10:13:09

标签: java tcp apache-mina

我使用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");
            }
        }

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

1 个答案:

答案 0 :(得分:0)

答案是,截至目前,这是不可能的,因为只有当我们尝试连接时才知道连接状态。我们可以在版本1.0+中添加Thread.sleep(1000);,或者在2.0 +

的情况下为未来添加一个监听器,而不是future.join()