2009-05-01 7 views
9

Ist es möglich, eine Steckdose zwischen zwei mobilen Geräten (iPhones) über das Internet zu verbinden?Ist es möglich, eine Steckdose zwischen zwei mobilen Geräten (iPhones) über das Internet zu verbinden?

Ich versuche, die IP jedes Geräts zu entdecken und direkt zu verbinden. Ich weiß, dass es mit Bonjour gemacht werden kann, aber das funktioniert nur in lokalen Netzwerken. Ich brauche eine Hochgeschwindigkeitsverbindung zwischen zwei Geräten über das Internet.

Danke.

+0

Warum subjektiv? –

+1

Subjektiv, weil ich offen bin für Meinungen darüber, wie ich mich dem annähern könnte/könnte. Vielen Dank! –

+1

Das ist nicht was subjektiv bedeutet. Das ist ziemlich objektiv. Beschriftet. Ich habe Aloso in Echtzeit entfernt, weil das in diesem Sinne auch nicht "Echtzeit" ist. –

Antwort

9

Wenn Sie beide die IPs hatten und sie beide routingfähig waren, sollte es möglich sein. Ich bin mir jedoch nicht sicher, ob die vom 3G-Netz vergebenen IP-Adressen routingfähig sind. Wenn Sie WIFI benutzen, ist die IP, die Sie bekommen, fast sicher nicht routingfähig. Vorausgesetzt, Sie haben eine routingfähige IP, sollte es möglich sein.

Der Trick ist nur die IP des anderen Geräts zu entdecken. Der beste Weg, dies zu tun, wäre wahrscheinlich, dass jedes Gerät beim Start der App seine IP bei einem Web-Dienst registriert und dann diesen Dienst abfragt, um die IPs anderer Geräte zu finden.

Es könnte ein bisschen schwierig werden, IP-Adressen zu "entregistrieren", wenn die App geschlossen wird oder wenn sich eine IP ändert, aber es sollte machbar sein.

ETA:

Wenn Sie einen Server haben, dass sie beide eine Verbindung herstellen können, sollten Sie in der Lage sein, eine Lösung zu implementieren, die Server mit (das heißt ohne die Telefone tatsächlich direkt miteinander verbindet). Dies würde das Problem vermeiden, routingfähige IPs für die Telefone zu haben.

Wie Sie die Sockets zusammen überbrücken - Ihr Server-Programm würde im Grunde funktionieren wie ein Old-School-Telefonzentrale Operator. Sie haben eine Art Registrierung & Discovery-Protokoll in der Server-Software integriert, die es einem Telefon erlauben würde, sich beim Server zu registrieren, eine Liste der anderen derzeit mit dem Server verbundenen Telefone abzufragen, anzugeben, mit welchem ​​Telefon es sprechen möchte. und akzeptiere Verbindungen von anderen Telefonen.

Sobald es weiß, wer mit wem sprechen will, würde Ihre Server-Software die zwei zusammen verbinden, indem sie von der Buchse eines Telefons lesen und diese Daten an die Buchse des anderen Telefons schreiben.

+0

Ich kann trotzig die Registrierung der IP jedes Geräts auf einem Webserver behandeln. Allerdings habe ich Bedenken, was Sie über Wi-Fi und 3G möglicherweise möglicherweise nicht routingfähig gesagt haben. Ich möchte dafür auch mit dem iPod touch arbeiten, der sich NUR über WLAN verbinden lässt. Ich kann einen Webserver einrichten. Ich vermute, jedes Gerät kann mit einem (dauerhaften?) Socket mit dem Server verbinden. Ich weiß einfach nicht, wie man Daten zwischen den zwei Verbindungen/Sockeln auf dem Server weitergibt. Es ist auch wichtig, dass dies schnell genug ist. –

+0

Vielen Dank für Ihr Feedback Ich fühle mich wie das Wasser wird weniger schlammig. –

+0

OK, bearbeitet meine Antwort mit mehr Informationen. Was die Leistung betrifft, hängt es weitgehend davon ab, wie schnell Ihr Server ist und wie viele gleichzeitige Verbindungen er bewältigen müsste. Mit einem gut implementierten Server sollte es fast so schnell sein wie eine direkte Telefon-zu-Telefon-Verbindung. –

2

Nur ein Vorschlag, aber wenn Sie jeder von ihnen eine Verbindung zu einer dritten Website herstellen können, werden Sie dann die Adresse von jedem kennen. Senden Sie die Adresse von Telefon A an Telefon B (und/oder Telefon B an Telefon A) und lassen Sie sie dann verbinden, wie Sie es für richtig halten.

1

Haben Sie alle Funktionen von 3.0 durchgesehen? Insbesondere Peer-Networking (deren Existenz öffentlich ist).

+1

Peer ab 3.0 ist WAN und Bluetooth. Ich habe diejenigen, die arbeiten, ich möchte nur die 3. Ebene hinzufügen –

1

WLAN-Router verfügen oft über eine Funktion namens "Port Triggering", die es internen Hosts (in diesem Fall ein iPhone) ermöglicht, den Router darüber zu informieren, dass sie Verbindungen an bestimmten Ports erhalten möchten. Ich habe keine Ahnung, ob das iPhone dieses Protokoll unterstützt.

Für IP-Lookup können Sie prüfen, DynamicDNS wenn die beiden Gastgeber sind bekannt, vor der Zeit oder wie oben einem benutzerdefinierten Web-Service angegeben, wenn sie nicht (dh Freunde Austausch von Host-Namen gegenüber Fremden zu entdecken sie)

0

mich mit habe ein sehr starkes Gefühl (aber keine Beweise), dass die iPhone-Adresse nicht routingfähig sein wird. Natürlich hängt es tatsächlich vom Operator ab, aber AT & T geben 10.x.x.x Adressen aus.

Apple hat sample (desktop) code, die Bonjour verwendet, um Portmapping auf einem WiFi-Router zu implementieren, der UnPnP unterstützt.

1

Dies ist ein alter Thread, aber ich bin gerade darauf gestoßen. Sie können einen STUN-Server (oder NAT-PMP) verwenden, um die öffentliche IP-Adresse/den Port-Combo zu erhalten, und ihn dann an das andere Telefon senden. Solange Sie einen Abhörport auf dem ersten Gerät öffnen, kann Ihr zweites Gerät nur direkt über die öffentliche IP-Adresse/den Port, den Sie an das SMS gesendet haben, eine Push-Verbindung herstellen tun Sie dies)

1

Ich bin auf dieses Problem mit einer App, die ich gerade entwickelte, gestoßen. Ich habe versucht, eine Verbindung zu einer PC-Zellkarte von einem iPhone herzustellen. Das Problem ist, dass AT & T keine mobile Terminierung für iPhones ermöglicht, so dass es physikalisch unmöglich ist, dass zwei Telefone in einem AT & T-Netzwerk miteinander verbunden werden. Dies ist direkt von einem AT & T Antenneningenieur.

Ich war in der Lage, dies zu arbeiten, indem Sie das iPhone VPN in einen Server und dann an die PC-Zellkarte anschließen, aber anders als das, es würde nicht funktionieren.

Verwandte Themen