【问题标题】:Asynchronous UDP server using Java NIO - How to identify the client?使用 Java NIO 的异步 UDP 服务器 - 如何识别客户端?
【发布时间】:2012-01-07 22:31:24
【问题描述】:

我正在尝试使用 Java NIO 编写异步 UDP 服务器, 我的问题是为每个客户端找到一个标识符,例如 IP 地址或类似的东西。 根据这篇文章:http://thushw.blogspot.com/2011/06/asynchronous-udp-server-using-java-nio.html 在 UDP 中,只有一个用于与所有客户端通信的套接字,我想持有一个 Hushtable,它将每个客户端的数据保存在缓冲区中。类似(IP,ClientBuffer)。 对于特定客户端发送的每次数据接收,我都想将其添加到他的缓冲区中。

我注意到在 datagramPacket 中我可以通过 datagramPacket.getSocketAddress() 方法接收 IP 但我没有找到从 chanel 获取 datagramPacket 的方法,我们只获取数据,而不是整个包地址。

提前谢谢!!!! 里夫卡:)

【问题讨论】:

    标签: asynchronous udp ip nio


    【解决方案1】:

    只有连接到客户端才能使用DatagramChannel.read()方法,所以你必须已经知道远程地址:端口。否则,当您在DatagramPacket 中获得远程 ip:port 时,您必须调用receive()。所以无论哪种方式,你都有它。

    【讨论】:

      猜你喜欢
      • 2012-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多