2012-01-07 53 views
0

我想寫使用Java NIO異步UDP服務器, 我的問題是要找到像IP地址或財產以後這樣每個客戶端的標識符。 根據這篇文章:HTTP://thushw.blogspot.com/2011/06/asynchronous-udp-server-using-java-nio.html 在UDP沒有與所有客戶溝通只有一個插座,我想持有一個Hushtable,可以將每個客戶端的數據保存在buuffers中。類似於(IP,ClientBuffer)。 對於特定客戶端正在發送的數據的每次接收,我想將其添加到他的緩衝區中。我注意到在datagramPacket中我可以通過datagramPacket.getSocketAddress()方法來recive IP,但我沒有找到從chanel獲取datagramPacket的方式,我們只獲取數據,而不是整個包與地址。使用Java NIO的異步UDP服務器 - 如何識別客戶端?

在此先感謝! Rivka :)

回答

0

您只能使用DatagramChannel.read()方法,如果它連接到客戶端,所以你必須已經知道遠程地址:端口。否則,當您在DatagramPacket中獲得遠程ip:端口時,您必須撥打。所以無論你如何擁有它。