最も簡単なオプションは、IP/UDPブロードキャストパケットを使用することです。コンピューター上のアプリケーション(任意のOSを実行している)はすべて、事前定義されたUDPポート(たとえば9999)をリッスンしてそこに座ることができ、iOSデバイスがネットワークを「スキャン」する場合、IP/UDPブロードキャストパケットを送信します。宛先ポートは9999です。ブロードキャストパケットを受信すると、コンピューター上のアプリケーションはiOSデバイスのIPアドレスを認識しているため、応答でき、そこからデータを取得できます。
ネットワークを離れるコンピューターを処理する最もクリーンな方法は、コンピューター上で実行されているアプリケーションがこの事実をiOSデバイスに伝達することです。これは、iOSデバイスのIPアドレスを既に知っているためです。ただし、コンピュータの現在のリストを維持することが重要な場合は、バイバイメッセージを送信する機会がなくても、何らかの理由でコンピュータがクラッシュする可能性があるため、何らかのポーリングメカニズムが避けられません。
マルチキャストは次のように利用できます。コンピューターは事前定義されたマルチキャストグループ(224.1.1.1など)のIGMP参加を定期的に送信し、iOSデバイスはネットワークを「スキャン」するときに224.1.1.1宛てのマルチキャストUDPパケットを送信します。マルチキャストUDPパケットは、224.1.1.1のマルチキャストグループにすでに参加しているため、コンピューターによって受信されます。その後、IPアドレスがわかったので、コンピューターはiOSデバイスとの通信を開始できます。ただし、これは非常に複雑に見え、実際には何の利点もありません。マルチキャストを使用することの全体的なポイントは帯域幅を節約することですが、節約される帯域幅の量はごくわずかです。iOSデバイスからすべてのコンピューターに大量の同じデータを送信する場合を除いて、このパスをたどる理由はありません。
Bonjourについては、経験がないので残念ながらコメントできませんが、プラットフォームに依存しないようにするために、単純なブロードキャストに投票します...少なくともコンピューター側では。:)