2011-01-10 13 views
0

Apache Minaを使用してTCPクライアントを作成しました。私はポートの活性を絶えずチェックするwhileループを追加しました。サーバー側で接続が確立すると、ループが切断され、接続が確立されます。私は将来からセッションを取得し、それを使って通信します。 これを行うより良い方法はありますか?ループの代わりに、私はその接続まで待つように頼むことができます。クライアントからのApache Mina TCPセッションのトラッキング

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

答えは、今のところ不可能です。私たちが接続を試みたときだけ、接続状態が分かっているからです。 1つの修正はThread.sleep(1000);の代わりにバージョン1.0+にfuture.join()を追加するか、2.0+の場合に将来のリスナーを追加する

関連する問題