2009-05-01 10 views
9

È possibile collegare una presa tra due dispositivi mobili (iPhone) su Internet?È possibile collegare una presa tra due dispositivi mobili (iPhone) su Internet?

Sto provando a scoprire l'IP di ciascun dispositivo e connettersi direttamente. So che può essere fatto con Bonjour ma funziona solo su reti locali. Ho bisogno di una connessione ad alta velocità tra due dispositivi su Internet.

Grazie.

+0

Perché soggettivo? –

+1

Soggettivo perché sono aperto a qualsiasi opinione su come dovrei/potrei avvicinarmi a questo. Grazie! –

+1

Questo non è ciò che significa soggettivo. Questo è piuttosto obiettivo. Rimarcato. Ho rimosso aloso in tempo reale perché non è "in tempo reale" in questo senso. –

risposta

9

Se entrambi gli IP fossero entrambi instradabili, dovrebbe essere possibile. Non sono sicuro se gli IP forniti dalla rete 3G siano instradabili. Se si utilizza WIFI, l'IP che si ottiene è quasi certamente non instradabile. Supponendo che tu abbia un IP instradabile, dovrebbe essere possibile.

Il trucco è scoprire l'IP dell'altro dispositivo. Il modo migliore per farlo sarebbe probabilmente quello di fare in modo che ogni dispositivo registri il proprio IP con un servizio Web all'avvio dell'app, quindi interrogare quel servizio per trovare gli IP di altri dispositivi.

Potrebbe essere un po 'complicato gestire gli IP di "annullamento della registrazione" quando l'app è chiusa o quando un IP cambia, ma dovrebbe essere fattibile.

ETA:

Se si dispone di un server che entrambi possono connettersi, si dovrebbe essere in grado di implementare una soluzione che utilizza quel server (cioè senza i telefoni in realtà direttamente comunicanti tra di loro). Ciò eviterebbe il problema di avere IP instradabili per i telefoni.

Per quanto riguarda il modo di collegare insieme le prese, il programma server funzionerebbe come un centralino telefonico di vecchia data. Avresti una sorta di protocollo di registrazione & incorporato nel software server che consentirebbe a un telefono di registrarsi con il server, interrogare un elenco degli altri telefoni attualmente connessi al server, indicare con quale telefono si vuole parlare, e accetta le connessioni da altri telefoni.

Una volta che sa chi vuole parlare con chi, il tuo software server collegherà i due insieme leggendo dalla presa di un telefono e scrivendo quei dati nella presa dell'altro telefono.

+0

Posso gestire in modo provocatorio la registrazione dell'IP di ogni dispositivo su un server web. Tuttavia, sono preoccupato per ciò che hai detto su Wi-Fi e 3G probabilmente/probabilmente non instradabili. Mi piacerebbe che funzionasse anche con l'iPod touch, che poteva SOLO collegarsi via Wi-Fi. Posso configurare un server web. Suppongo che ogni dispositivo possa connettersi al server con una presa (persistente?). Non so come passare i dati tra le due connessioni/socket sul server. Inoltre, è preoccupante che questo sarà abbastanza veloce? –

+0

Inoltre, grazie per il vostro feedback, mi sento come se l'acqua diventasse meno fangosa. –

+0

OK, ho modificato la mia risposta con maggiori informazioni. Per quanto riguarda le prestazioni, dipenderebbe in gran parte dalla velocità del server e dal numero di connessioni simultanee che avrebbe dovuto gestire. Con un server ben implementato, dovrebbe essere quasi veloce come una connessione diretta da telefono a telefono. –

2

Solo un suggerimento, ma se è possibile ottenere ciascuno di essi per la connessione a un terzo sito, si verrà a conoscenza dell'indirizzo di ciascuno. Inviare l'indirizzo del telefono A al telefono B (e/o al telefono B al telefono A) e quindi fare in modo che si colleghino come meglio credi.

1

Hai esaminato tutte le funzionalità 3.0? In particolare reti di peer (la cui esistenza è pubblica).

+1

peer a partire da 3.0 è WAN e Bluetooth. Ho quelli che lavorano voglio solo aggiungere il 3 ° livello –

1

I router WiFi hanno spesso una funzionalità chiamata "Port Triggering" che consente agli host interni (in questo caso un iPhone) di comunicare al router che vorrebbero avere una connessione su una particolare porta inoltrata a loro. Non ho idea se l'iPhone supporta questo protocollo.

Per Ricerca IP che si può considerare l'utilizzo DynamicDNS se i due padroni di casa sono noti prima del tempo o come detto in precedenza un servizio Web personalizzato se non sono (vale a dire lo scambio di amici hostname vs. sconosciuti scoprendo tra loro)

0

I ho una sensazione molto forte (ma non ci sono prove) che l'indirizzo di iPhone sarà non-routable. Ovviamente, in realtà dipende dall'operatore, ma AT & T fornisce gli indirizzi 10.x.x.x.

Apple ha sample (desktop) code che utilizza Bonjour per implementare la portmapping su un router WiFi che supporta UnPnP.

1

Questo è un thread vecchio, ma l'ho appena trovato. È possibile utilizzare un server STUN (o NAT-PMP) per ottenere l'indirizzo IP pubblico/porta combo e quindi inviarlo tramite SMS all'altro telefono. Finché apri una porta di ascolto sul primo dispositivo, il tuo secondo dispositivo può semplicemente connettersi direttamente utilizzando l'indirizzo IP pubblico/la porta che gli hai inviato negli SMS (il registro push di SMS può automaticamente riattivare l'app sul secondo dispositivo per fare questo)

1

Ho incontrato questo problema con un'app che stavo sviluppando. Stavo cercando di connettermi a una scheda cellulare del PC da un iPhone. Il problema è che AT & T non abilita la terminazione mobile per iPhone, quindi è fisicamente impossibile che due telefoni su una rete AT & T si connettano l'un l'altro. Questo è direttamente da un ingegnere dell'antenna AT & T.

Sono stato in grado di farlo funzionare avendo l'iPhone VPN in un server e quindi connettersi alla scheda della cella del PC, ma a parte questo, non avrebbe funzionato.