現在マルチプレイヤーを開発しているアプリがあります。しかし、私は2台の電話を持っていないので、自分のPCで別のプログラムを実行しています(注:エミュレーターではありません!)。これは、自分のプログラムとマルチプレイヤーの側面をシミュレートします。
ただし、PCには次のコードがあります。
Packet input = inputQueue.take();
if (clientAddress == input.getAddress())
{
switch (input.type)
{
これは正常に機能します。Packetは、Datagramパケットから情報を取得するために作成した単純なクラスであり、getAddress()はInetAddressを返します。クライアントアドレスは、コードで以前に設定されています。
ただし、Androidアプリのコードはまったく同じで、文字通り行ごとにまったく同じであり、このInetAddressは他のコードと同じではありませんか?getHostName()などを使用して2つのInetAddressの文字列を取得し、それらを比較すると、他の文字列と等しくなります。
私は何か間違ったことをしていて、2つのオブジェクトを==記号で比較できると考えて何かを想定していますか?.equals()である必要がありますか?androidは同じjava.netコードを使用していると思いましたが、違いはありますか?
InetAddressを使用して同じアドレスを確実に取得するための最良の方法は何ですか?