私は(ネットワーク上で)デスクトップサーバーアプリケーション(どちらもJavaとGUIベースでプログラミング)と通信するアンドロイドアプリケーションを持っています。今はテストするために、私は単にアンドロイド携帯電話のソケットを指定する方法があります。しかし、将来、私がアプリケーションをリリースするとき、私はそれがサーバーにそれ自身で接続しようとすることができるようにしたい。自動的にサーバーのためのAndroidの検索
これまで私が持っていたアイデアのいくつかは、電話のIPアドレスを取得してから、同じポートのクラスCアドレス空間をループして、それらのソケットが接続されているかどうかを確認しています。あなたには他に何か提案がありますか?
また、Androidで電話のIPアドレスを取得するにはどうすればよいですか?私は方法がありますが、それはアンドロイド2.3以降でのみ動作します... ICS上では完全にフロップしてランダムな不器用さを与えます。ここにあります:
public String getLocalIpAddress() {
try {
for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
NetworkInterface intf = en.nextElement();
for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress()) {
return inetAddress.getHostAddress().toString();
}
}
}
} catch (Exception ex) {
}
return null;
}
私は255.255.255.255:18250に自動接続しようとしましたが、私のサーバー(*:18250)は明らかにブロードキャストを取得しませんでした。 –