【问题标题】:how to determine the server port in MINAMINA中如何确定服务器端口
【发布时间】:2011-10-08 14:50:20
【问题描述】:

在我的应用程序中,我有一台侦听多个 udp 端口​​的服务器。我在这个应用程序中使用了 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)。

提前致谢。

【问题讨论】:

    标签: java nio java-io


    【解决方案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);
    }
    

    【讨论】:

    • 谢谢。有效。顺便说一句,我设法通过使用 getLocalAddress() 来解决它。但似乎你的方式是完美的。非常感谢。
    猜你喜欢
    • 2013-08-22
    • 1970-01-01
    • 1970-01-01
    • 2012-11-03
    • 2023-03-12
    • 1970-01-01
    • 2012-02-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多