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
耶,這個作品!我曾嘗試session.getServiceAddress(),但它的一種陷阱,因爲它只返回集合中的第一個端口,在我的情況下總是80 –
很高興聽到:) – MByD