2011-08-13 5 views
0

以下のようにポート80と8080でリッスンしているサーバーを持っていると、メッセージを受け取ったときにクライアントが接続したローカルポートをどのように特定できますか? Apache Mina:リモートクライアントが接続されているローカルポートを取得する

acceptor = new NioSocketAcceptor(); 
acceptor.setHandler(new MyConnectionHandler()); 
Set<SocketAddress> addresses = new HashSet<SocketAddress>(); 
addresses.add(new InetSocketAddress(host, 80)); 
addresses.add(new InetSocketAddress(host, 8080)); 
acceptor.bind(addresses); 

は、ハンドラの は、私は、クライアントではなく、クライアントのリモートポートに接続されたローカルどのポートを知りたい messageReceived。

@Override 
public void messageReceived(IoSession session, Object message) throws Exception { 
    log.info("Incomming: {}", session.getRemoteAddress().toString()); 

80または8080のポートにアクセスするにはどの方法を使用しますか?

Incomming: /219.182.172.12:37921 

答えて

1
+0

イェーイ、この作品:ログ・ステートメントは、このような何かを印刷します!私はsession.getServiceAddress()を試していましたが、私の場合は常に80だったセット内の最初のポートだけを返すので、gotchaのようなものです –

+0

嬉しいです:) – MByD

関連する問題