【问题标题】:Send data back to client with UDP using Apache Mina使用 Apache Mina 通过 UDP 将数据发送回客户端
【发布时间】:2011-04-27 13:27:35
【问题描述】:

我正在使用 Apache Mina 创建一个服务器来接受 UDP 客户端请求。我已经阅读了 Apache Mina 提供的关于 UDP Server & UDP Client 的官方文档。但是,我想知道服务器何时收到消息,我可以使用同一个会话写回 UDP 客户端吗(我知道 UDP 在网络层是无连接的,但是我可以在应用层获取远程主机的 IP 和端口) 以便 UDP 客户端接收消息。我知道这可能是 TCP,但对 UDP 有点困惑。我知道这可能不完全是基于 Java 的,而是更多基于网络层的问题。如果有人能帮我解决这个问题,我将不胜感激。

【问题讨论】:

    标签: java network-programming udp udpclient apache-mina


    【解决方案1】:

    我得到了相同的答案,并认为我会分享。

    UDP 是无连接的,但是我可以使用 Apache Mina 中的同一会话来写入会话。我也将其作为示例进行了尝试,并且有效。

    【讨论】:

      【解决方案2】:
      @Override
          public void messageReceived(IoSession session, Object message) throws Exception {
      
                  for (int i = 0; i < session.getService().getManagedSessions().values().toArray().length; i++) {
      
                      IoSession aSession=(IoSession) session.getService().getManagedSessions().values().toArray()[i];
                      aSession.write("Any Message");
                  }
      
      
      
          }
      

      【讨论】:

        【解决方案3】:

        试试这个你的处理程序类

        @Override
        public void messageReceived(IoSession session, Object message) throws Exception {
                // response every time get data 
                byte[] b = "Received".getBytes();
                final IoBuffer responsebuffer = IoBuffer.allocate(b.length);
                responsebuffer.put(b);
                responsebuffer.flip();
                session.write(responsebuffer);
                SocketAddress remoteAddress = session.getRemoteAddress();
        
                if (message instanceof IoBuffer) {
                    IoBuffer buffer = (IoBuffer) message;
                    final CharsetDecoder decoder = getCharsetDecoder(session);
                    String receivedMsg = buffer.getString(decoder);
                    String data = remoteAddress + " Received: " + receivedMsg;
                    server.append(data);
                }
        
            }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-09-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多