2011-01-10 14 views
0

Ich habe einen TCP-Client mit Apache Mina erstellt. Ich habe eine While-Schleife hinzugefügt, um ständig die Lebendigkeit des Ports zu überprüfen. Sobald die Verbindung auf der Serverseite aufgebaut ist, wird die Schleife unterbrochen und die Verbindung hergestellt. Ich bekomme die Sitzung von der Zukunft und benutze sie, um zu kommunizieren. Gibt es einen besseren Weg, dies zu tun. anstelle von loop kann ich die verbindung bitten, bis sie auf ist.Apache Mina TCP Session-Tracking vom Client

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

Eine andere Frage ist, Wenn der Server ist, und ich möchte, dass die Server für die Verbindung bis der jeweils noch halten, was soll ich tun?

Antwort

0

Die Antwort ist, ab sofort ist es nicht möglich, da der Verbindungsstatus nur bekannt ist, wenn wir versuchen, eine Verbindung herzustellen. Eine Modifikation ist anstelle der Thread.sleep(1000); wir können future.join() in Version 1.0+ hinzufügen oder einen Listener für die Zukunft im Fall von 2.0 +

hinzufügen