3

私はこれについてウェブ全体でたくさんの質問を読みましたが、確かな答えを見つけることができないようです. セルラー データで実行している iPhone と Wi-Fi で動作している別の iOS デバイスを (2 つの別々の場所で) 使用している場合、最初に Web サーバーに送信してから取得することなく、相互にデータを直接送信することは可能ですか? サーバー/AppleのiCloudから送受信する唯一のオプションですか? デバイスの IP アドレスがわかっている場合はどうなりますか? iPhone では WiFi が無効になっていることに注意してください。

私はこれをアプリストアに入れるつもりはありません。個人的な使用のためです。私NSNotificationCenterはオプションではないことを知っています。

4

4 に答える 4

6

ゲームキットフレームワークを使用すると、2つのiOSデバイス間でデータを送信できます。実装は簡単です。それ以外に、2つのiOSデバイス間でデータを送信する方法は他にないと思います。

于 2012-07-09T17:52:12.187 に答える
3

実際、それは可能です。「UDP ホール パンチング」または「TCP ホール パンチング」と呼ばれるものをググるとよいでしょう。

簡単に言えば、主なアプローチ: リレー サーバーのようなものがあると仮定します。これは、www. いいえ、2 つのクライアント A と B が (異なる) プライベート LAN にあり、ネットワーク アドレス変換 (NAT) が行われており、ピア ツー ピア接続を確立したいと考えています。

まず最初に、両方がサーバーに自分の IP アドレスと自分の LAN にあるポートを伝えます。UDP または TCP パケットで、サーバーはデバイス (または NAT (ルーター)) のパブリック アドレスとポートを見つけます。したがって、サーバーはプライベート IP アドレスとパブリック IP アドレス、およびポートを認識します。

A が B と通信したい場合、サーバーに助けを求めます。サーバーは、A が B と通信したいというメッセージを B に送信し、A のパブリックおよびプライベート IP とポートを伝えます。A は、B の公開および非公開の情報とポートを取得します。

ここで魔法が起こります。両方のクライアントがパケットを送信して、相手のプライベート アドレスとパブリック アドレスに同時に接続を確立し、着信接続がブロックされないように、NAT 全体をパンチします。この全体が作成される前に一方のパーティの接続確立パケットが到着したとしても、他方のパケットは接続を作成できるように通過します。

IP アドレスのデータをスキャンして変換する一部の NAT には注意してください。

主な質問は、サーバーがアクティブな接続なしでクライアントの 1 つとどのように通信できるかということです。この場合、「接続反転」とアップルの「プッシュ通知」を使用できます。「プッシュ通知」(pn) を使用して、NAT の背後にあるクライアントに、関心のあることが起こっており、サーバーに連絡する必要があることを伝えます。接続がアクティブになると、前述の方法で使用できるようになります。

投稿はかなり古いですが、これがこの問題に遭遇した一部の人々に役立つことを願っています!

于 2013-10-10T13:35:22.693 に答える
1

直接 IP アドレス通信を使用できるのは、IP アドレスがインターネット経由でアクセス可能なパブリックに到達可能な IP アドレスであり、デバイスが動的にアドレスに割り当てられるときに定期的に変更されないように (十分に) 静的である場合のみです。多くの (ほとんどの) ケースでは、デバイスには IP アドレスが動的に割り当てられ、それらのアドレスは一般にアドレス指定できない自己割り当ての IP アドレスになることが多いため、そうではありません。

他の人がコメントしているように、iCloud のような Apple が提供するメカニズムを使用するのがおそらく最も簡単なオプションです。それを楽しみたくない場合は、DynDNS などの動的 DNS サービスを利用して、デバイスの実際の IP アドレスを管理する方法がおそらくあるでしょう。そのようなものを使用すると、名前付き DNS ルックアップに基づいて、デバイス間で直接 IP 接続を使用できる場合があります。ただし、それを実現するには、おそらくいくつかのフープをジャンプする必要がありますが、そこまで行きたいと思うかどうかはわかりません.

于 2012-07-09T21:19:06.383 に答える
0

Bluetoothはあなたにとって良い選択肢だと思い ます

于 2012-07-09T16:02:06.920 に答える