2013-03-12 7 views
18

これは数日間続いていますが、解決策が見つからないようです。私はiOS上でWi-Fiを介してピアツーピアネットワークを作りたいと思っています。すべてのオープンソースコードは、サーバーやクライアントとしての動作をサポートしているようですが、両方をサポートするコードはありません。私がこれをやり遂げる方法を知っている人はいますか?iOSのWi-Fiを使ったピアツーピアネットワーク

+1

https://github.com/robbiehanson/CocoaHTTPServerを見たことがありますか?まだクライアントとサーバーの関係はわかっていますが、組み込みのAppleアドホックネットワークAPIはまだプライベートです。 – JiuJitsuCoder

+0

私はあなたの質問に不明です。 2つのiOSデバイス間にアドホックWiFiネットワークを作成できるコードを探していますか?既にP2P通信を行うためにWiFi経由で接続されている2つのiOSデバイスのための方法を探していますか? – rmaddy

+0

インターネットとBSDソケットの仕組みを学びましょう。 bind()呼び出しを使用します。 STUNサーバーを使用してください。たくさんのソケットを使用してください。到達可能性通知APIを使用する。ネットワークインターフェイスを列挙します。コンクリートポートにバインドします。必要に応じて、マルチキャスト送信を使用します。 IPはすばらしい世界ですが、アップルのためのコードを学ぶ人は、決して物事を得ることはありません:-( –

答えて

3

アップルのGameKitフレームワークを使用したことはありますか?私はこれまで、デバイス間の単純な通信のために使用してきました。それは本当にシンプルで、すぐにゲートから出ることができます。 Thisは良いチュートリアルのようです。

+0

問題は、私のアプリがゲームキットを使うことを受け入れるということです。 – Andrew

+0

どの部分、 GKPeerPickerControllerはあなたの人生をシンプルにし、ゲームをプレイしているようには見えません。 –

+0

私は現在ゲーム以外の場所でP2Pデータ転送にGameKitを使用していますが、この機能を受け入れるか承認するようにユーザーに求められたことに気づいていません。接続は非常に簡単ですが、接続は不安定であり、Wi-Fiに比べて小さなデータビットではデータ伝送が遅くなります。 – arlomedia

1

iOSで現在のAPIを使用してプログラムでWi-Fiネットワークを作成することはできません。 GameKitは、しかし、ブルートゥースを介してそうするいくつかのAPIを提供しています。

CocoaHTTPServerを使用してカスタムソリューションを実装する場合は、引き続き直接Wi-Fi接続を作成できないことに注意してください。同じ(既存の)Wi -fiネットワーク。

iOSのアドホックなピアツーピアWi-Fi(802.11など)はまだ数年前です。おそらくiOSX;)

+0

[documentation](http://developer.apple.com/library/ios/#documentation/GameKit/Reference/GKSession_Class/Reference/Reference.html)は、次のように言います:GKSessionオブジェクトは、 BluetoothまたはWi-Fiを使用して近くのiOSデバイスを検出して接続する機能 –

+0

直接ピアツーピア接続にはBluetoothのみが使用されます。 Wi-FiはLAN上のBonjourに使用されます。 – cleverbit

+0

GKSessionはiOS 7で非推奨になりました – user2159978

14

iOS 7では、正確にこの目的のためにMultipeer Connectivity Frameworkが追加されています。

+0

作業リンクhttps://developer.apple.com/library/ios/DOCUMENTATION/MultipeerConnectivity/Reference/MultipeerConnectivityFramework/index.html – sage444

+0

実際に動作しているマルチペラ接続を参照してください:http://youtu.be/ MgP8wm7_-Xk – Aace

+1

このフレームワークを使用することはお勧めできません。非常に普遍的ですが、遅すぎます。 – user2159978

1

iOSは、iOSデバイスがBluetooth、インフラストラクチャ(WiFi)、またはP2Pを介して互いに話すことを可能にするMultipeer Connectivity frameworkをサポートしています。

しかし、P2Pを明示的に使用する方法はありません。デバイスのピア(他のiOSデバイス)がどのように接続されているかを抽象化したレイヤーがあり、現在非iOSデバイスを接続することはできません。

3

私はOpen Peerが正しい解決策だと思います。これは、集中型サーバーを必要とせずに、デバイス間の真の直接ピアツーピア接続を提供します。この入門書のvideoを確認してください。

+2

オープンピアはインターネット経由でそれを行います – Karthik

関連する問題