2011-08-13 4 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()를 시도했지만 gotcha의 종류는 내 케이스가 항상 80이었던 세트의 첫 번째 포트만 반환하기 때문에 –

+0

다행 :) – MByD