私は一日中、MacとiPhoneの間にシステムを作成し、 cocoaasyncsocketを使用してMacにリッスンサーバーを作成し、iPhoneにクライアントを作成しました。基本的な考え方は、コンピューターの電源が入っている間、アプリをMacで実行したままにし、iPhoneアプリからデータを転送したいときに、アプリを起動して接続し、データを送信することです...このシステムは正確に機能していますどのように機能させたいのか、合計で約4時間解決しようとしている問題が1つあります。
リスナーが実行されている状態で、ワイヤレスネットワークをスキャンしてMacをスキャンするものを作成したかったのですが、これは簡単だと思いましたが、間違っていました。私はケースで運がなくて高低を検索しました、そして私は私の最後の手段としてstackoverflowを使用しています。
私の現在の計画は、iPhoneの内部IP(つまり、192.168.1.94)を取得して「自動スキャン」し、それを使用してネットワーク上の他のIP(192.168.1.0-254)を把握することでした。これで、どのIPかがわかりました。スキャンするには、それぞれをループして、ポートが開いているかどうかを確認します/応答を受け取ります。
今、私はこれをできるだけ早くやりたいのですが、正確な結果を出すために何も得ることができませんでした...
cocoaasyncsocketで使用connectToAddress:error:すると、255個の異なるIPアドレスのすべてに対してtrueが返されるだけなので、私が遭遇した他の到達可能性関数も同様です...接続が確立されたかどうかを確認するだけだからです。反対側で何が起こるかは気にしないので、別のことを考える必要があります。
私が考えることができる他の唯一の解決策は、おそらく各内部IPにpingを実行して応答が得られるかどうかを確認することですが、255個のIPアドレスを通過するのに時間がかかりすぎるかどうかはわかりません...そして、アクティブなIPを取得したら、ポートが何らかの理由で開いているかどうかを確認する必要があります:/
ここの誰かがそれがどのように行われるかを知っているか、私が開いているポートをチェックする方法についてもっと良い考えを持っているなら(私はネットワーキングがあまり得意ではありません)、私は非常に感謝します。
読んでくれてありがとう、
リアム