-2
UDPを使用してチャットアプリケーションを開発しています。私は別のピアのポート番号を取得するときに問題があります。ピアのホストアドレスは取得できますが、応答/要求が送信されたポートは取得できません。リクエスト/レスポンスを送ったピアのポート番号を取得することは可能ですか?ここで他のピアのUDP取得ポート番号(Java)
は私のコードです:
private Thread bcastListen = new Thread(PeerDiscovery.class.getSimpleName()
+ " broadcast listen thread") {
@Override
public void run() {
try {
byte[] buffy = new byte[5];
buffy[2] = (byte) 4000;
DatagramPacket rx = new DatagramPacket(buffy, buffy.length);
while (!shouldStop) {
try {
buffy[0] = 0;
bcastSocket.receive(rx);
int recData = decode(buffy, 1);
if (buffy[0] == QUERY_PACKET && recData == group) {
byte[] data = new byte[5];
data[0] = RESPONSE_PACKET;
encode(peerData, data, 1);
DatagramPacket tx
= new DatagramPacket(data, data.length, rx.getAddress(), port);
System.out.println(peerData);
lastResponseDestination = rx.getAddress();
bcastSocket.send(tx);
} else if (buffy[0] == RESPONSE_PACKET) {
if (responseList != null && !rx.getAddress().equals(lastResponseDestination)) {
synchronized (responseList) {
responseList.add(new Peer(rx.getAddress(), rx.getPort())); //here am trying to get the port of the host which the response came from (Doesn't work)
}
}
}
} catch (SocketException se) {
System.out.println("Some exception");
}
}
bcastSocket.disconnect();
bcastSocket.close();
}
はお時間をいただき、ありがとうございます。