2

背景:
私は、大学のコース向けに Android ゲームを開発しているチームの一員です。私はネットワーキングの担当者であり、私の目的は、「クライアント モード」で実行されているゲームから「ホスト モード」で実行されているゲームに入力を送信することです。ホストはすべての物理/衝突などを行い、ゲームの更新された状態を送り返します。

ゲームの状態全体を正常に送信できるように、ゲームの状態を十分に圧縮できると確信しています (グラフィックスはクライアント側で処理されます)。

私が取得したIPv4アドレスを使用して、このゲームを無線LANで動作させることを目指しています

NetworkInterface.getNetworkInterfaces().

すべてのアクティビティ コードとユーザー入力はコードの外部で処理されるため、基本的に Java ソケットを使用しています。

質問:
以下の私のコードは、1 つのデータ バイトの 1 つのパケットをホストに送信し、接続を希望するクライアントが存在することをホストに通知する必要があります。ただし、Wireshark を使用して、このコードを実行した後、約 80 秒間、すべてのパケット アクティビティを追跡しました。

11  2.825742000 MurataMa_41:d5:ed   Broadcast   ARP 42  Who has 192.168.0.25?  Tell 192.168.0.24

つまり、応答のない ARP 要求です。それが問題だった場合に備えて、複数のポートを試しましたが、現在は 5000 を使用しています。

int hostPort = 5000;

hostSocket = new DatagramSocket(hostPort);
byte [] buffer = new byte[1];
buffer[0] = 'h';
DatagramPacket hello = new DatagramPacket(buffer, buffer.length, hostAddress, hostPort);
hostSocket.send(hello);

では、ホストの Android デバイスを ARP 要求に応答させるにはどうすればよいでしょうか? リクエストを送信する Android 2.2 携帯電話と、Android 4.2.2 を実行している Nexus 7 があり、リクエストを受信する必要があります。

編集

送信時に LogCat 出力の一部またはすべての例外を確認しました。ありません。

4

0 に答える 0