2011-07-19 12 views
0

私のアプリケーションでは、複数のudpポートでリッスンするサーバーがあります。私はこのアプリケーションでMINAを使用しました。MINAのサーバーポートを特定する方法

// code looks like this. 
NioDatagramAcceptor acceptor = new NioDatagramAcceptor(); 
... 
... 
acceptor.bind(new InetSocketAddress(9911)); 
acceptor.bind(new InetSocketAddress(9912)); 

ハンドラでは、データを受け取ったときに次のコードが表示されます。コード内

@Override 
public void messageReceived(IoSession session, Object message) 
     throws Exception { 
    if (message instanceof IoBuffer) { 
     String msg = "data received in port "+ <NEED TO GET THE PORT NO>; 
     System.out.println(msg); 
    } 
} 

私はどのようにデータが受信されているポートがない(この場合は9911または9912)を取得するには考えています。

ありがとうございます。

答えて

1

参考:http://mina.apache.org/report/trunk/apidocs/org/apache/mina/core/session/IoSession.html

@Override 
public void messageReceived(IoSession session, Object message) 
    throws Exception { 
if (message instanceof IoBuffer) { 
    InetSocketAddress inetSocketAddress = (InetSocketAddress) session.getServiceAddress(); 
    int portNumber = inetSocketAddress.getPortNumber(); 
    String msg = "data received in port "+ portNumber; 
    System.out.println(msg); 
} 
+0

感謝。出来た。ちなみに、私はgetLocalAddress()を使って解決することができました。それはあなたの方法は完璧なものだと思われる。どうもありがとうございました。 – user619237

関連する問題