【问题标题】:Apache Mina TCP session tracking from client来自客户端的 Apache Mina TCP 会话跟踪
【发布时间】:2011-01-10 10:13:08
【问题描述】:

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

另一个问题是,如果服务器宕机了,我希望服务器一直等待连接直到它启动,我该怎么办?

【问题讨论】:

    标签: java tcp apache-mina


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2017-08-25
      • 1970-01-01
      • 1970-01-01
      • 2013-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-07
      相关资源
      最近更新 更多