現在、Android アプリと iOS アプリの間のソケットベース システムを開発しています。iOS はサーバーとして機能します (Bourjour を使用してサービスを公開します)。Android アプリはクライアントとして機能し、サーバーをスキャンし、リストビューにサーバーのリストを表示し、ユーザーの意志でサーバーに接続します。どちらもエミュレーター (最終的には実際のデバイス) で実行されます。システム用の特定のポートを取得しました。たとえば、49300 です。問題は、スキャンするローカル IP アドレス (192.168.xx) が多すぎて、255 * 255 になることです。ジョブを実行するキュー タスクを作成します。フローは次のとおりです。
scan for subnet with for-loop x = 0 -> 255
scanner >= (QUEUE = 5)
wait();
new thread scan for 192.168.x.y with for-loop y = 0 -> 255
scanner++
スキャンスレッド:
scan for 192.168.x.y with for-loop y = 0 -> 255
if 192.168.x.y reachable then
add to list
end for
scanner--;
notify();
しかし、アプリが行うにはあまりにも多くの作業があるようです.Androidシミュレータはちょうどシャットダウンしました.どんな助けでも大歓迎です.