2012-01-07 15 views
0

Java NIOを使用して非同期UDPサーバを作成しようとしています。 私の問題は、IPアドレスなどのクライアントごとの識別子を見つけることです。 この記事によると:http://thushw.blogspot.com/2011/06/asynchronous-udp-server-using-java-nio.html UDPでは、すべてのクライアントと通信するためのソケットが1つしかありません。バッファごとにクライアントごとのデータを保存するハッシュテーブルを保持します。何かのもの(IP、ClientBuffer)。 spcificクライアントが送信しているすべてのデータを受信するたびに、自分のバッファに追加したいと考えています。Java NIOを使用した非同期UDPサーバ - クライアントの識別方法?

datagramPacketで私はthetに気づきました。私はdatagramPacket.getSocketAddress()メソッドでIPを受け取ることができますが、私はデータグパケットをシャネルから取得する方法を見つけませんでした。アドレスと。

ありがとうございます!!!! リーク:)

答えて

0

クライアントに接続されている場合はDatagramChannel.read()メソッドしか使用できないため、リモートアドレス:portをすでに知っている必要があります。それ以外の場合は、DatagramPacketのリモートIP:ポートを取得したときにに電話する必要があります。それでどちらにしてもあなたはそれを持っています。