2013-03-12 8 views
18

Ich habe schon seit ein paar Tagen hier, und kann nicht scheinen, eine Lösung zu finden. Ich möchte ein Peer-to-Peer-Netzwerk über WLAN auf iOS erstellen. Der gesamte Open-Source-Code scheint die Ausführung eines Servers oder eines Clients zu unterstützen, aber es gibt keinen Code, der so erstellt wurde, dass er beides unterstützt - einen Peer. Weiß jemand, wie ich das machen kann?Peer-to-Peer-Netzwerk über WLAN in iOS

+1

Haben Sie sich etwas angesehen wie: https://github.com/robiehanson/CocoaHTTPServer Ich weiß, es ist immer noch eine Client/Server-Beziehung, aber es scheint, dass die integrierte Apple Adhoc Networking API noch privat ist. – JiuJitsuCoder

+0

Ich bin unklar auf Ihre Frage. Suchen Sie nach einem Code, mit dem Sie ein Adhoc-WiFi-Netzwerk zwischen zwei iOS-Geräten erstellen können oder suchen Sie nach einer Möglichkeit für zwei iOS-Geräte, die bereits über WiFi verbunden sind, P2P-Kommunikationen durchzuführen? – rmaddy

+0

Erfahren Sie, wie Internet- und BSD-Sockets funktionieren. Verwenden Sie bind() -Aufrufe. Verwenden Sie STUN-Server. Verwenden Sie eine Menge Steckdosen. Verwenden Sie die Erreichbarkeitsbenachrichtigungs-API. Auflisten von Netzwerkschnittstellen An konkrete Häfen binden. Verwenden Sie Multicast-Sendungen, wenn Sie möchten. IP ist eine wundervolle Welt, aber Leute, die lernen, für Apple zu programmieren, bekommen nie etwas :-( –

Antwort

3

Haben Sie daran gedacht, Apples GameKit-Framework zu verwenden? Ich habe es in der Vergangenheit für eine einfache Kommunikation zwischen Geräten verwendet. Es ist wirklich einfach und kann dich schnell aus dem Tor bringen. This sieht aus wie ein gutes Tutorial.

+0

Das Problem ist, dass sie akzeptieren, dass meine app gamekit verwenden kann, das dem Benutzer ein bisschen zufällig scheint. – Andrew

+0

Welcher Teil, der Name GameKit, das GameKit UI oder beides? Sie können Ihre eigenen benutzerdefinierten UI rollen und niemand wird mehr wissen. Der 'GKPeerPickerController' wird Ihr Leben sofort vereinfachen und sieht nicht so aus, als würde man ein Spiel spielen. Sie können jedoch Ihre eigene Lösung rollen und Ihre eigene Benutzeroberfläche haben .. –

+0

Ich verwende derzeit GameKit für p2p Datentransfer in einem Nicht-Spiel, und ich bin mir nicht bewusst, dass Benutzer jemals aufgefordert wurden, diese Funktionalität zu akzeptieren oder zu genehmigen Verbindungen sind ziemlich einfach einzurichten, aber die Verbindungen sind flockig und die Datenübertragung ist langsam für mehr als kleine Datenmengen, im Vergleich zu Wi-Fi. – arlomedia

1

Sie können ein Wi-Fi-Netzwerk programmatisch in iOS mit aktuellen APIs erstellen. GameKit bietet dazu einige APIs über Bluetooth an.

Wenn Sie eine benutzerdefinierte Lösung mit CocoaHTTPServer implementieren möchten, beachten Sie, dass Sie immer noch keine direkte Wi-Fi-Verbindung herstellen können. Sie können einfach Geräte auf derselben (bereits vorhandenen) Verbindung herstellen -fi Netzwerk.

Ad-hoc-Peer-Wi-Fi (wie 802.11s) in iOS ist nach wie vor ein paar Jahren weg zu spähen. Vielleicht iOSX, fügt)

+0

Die [Dokumentation] (http://developer.apple.com/library/ios/#documentation/GameKit/Reference/GKSession_Class/Reference/Reference.html) sagt: Ein GKSession-Objekt bietet die Fähigkeit, über Bluetooth oder Wi-Fi in der Nähe befindliche iOS-Geräte zu erkennen und sich mit ihnen zu verbinden. –

+0

Nur Bluetooth wird für direkte Peer-to-Peer-Verbindungen verwendet. Wi-Fi wird für Bonjour über LAN verwendet. – cleverbit

+0

GKSession ist in iOS 7 veraltet – user2159978

14

iOS 7 die Multipeer Connectivity Framework für genau diesen Zweck.

+0

Arbeitslink https://developer.apple.com/library/ios/DOCUMENTATION/MultipeerConnectivity/Reference/MultipeerConnectivityFramework/index.html – sage444

+0

siehe Multipeer-Konnektivität in Aktion: http://youtu.be/ MgP8wm7_-Xk – Aace

+1

Ich empfehle nicht, dieses Framework zu verwenden. Es ist sehr universell, aber es ist zu langsam. – user2159978

1

IOS unterstützt die Multipeer Connectivity framework die IOS-Geräte ermöglicht, miteinander über Bluetooth, Infrastruktur (mit einem Router) WiFi oder P2P zu sprechen.

Es ist nicht, bietet jedoch eine Möglichkeit, P2P explizit zu verwenden. Es gibt eine Abstraktionsebene, die von den Peers eines anderen Geräts (anderen iOS-Geräten) entfernt ist. Gegenwärtig können keine Nicht-iOS-Geräte angeschlossen werden.

3

Ich denke Open Peer die richtige Lösung ist. Es bietet eine echte direkte Peer-to-Peer-Verbindung zwischen Geräten, ohne dass ein zentraler Server erforderlich ist. Schauen Sie sich diese Einführung video.

+2

Open Peer tut es über das Internet – Karthik

Verwandte Themen