UDP Verbindung auch bei mobilem Internet!?

M

mitch_HD2

Fortgeschrittenes Mitglied
1
Hallo zusammen,

ich habe einen Raspberry der per UDP mit meiner APP kommuniziert... das klappt auch wunderbar.. im WLAN!!!!

wenn ich unterwegs bin kann ich zwar senden (DynDNS) aber empfangen natürlich nicht da ich ja per UMTS keine feste IP habe....

wie bekomme ich das aber trotzdem hin? am besten ohne dass ich meinen client und Server groß umschreiben muss.
 
https://www.android-hilfe.de/forum/...ng.9/socket-server-auf-smartphone.633537.html

Gleiches Problem. ;)

Der Verbindungsaufbau geht nur in Richtung Handy (Client) zu Rasberry Pi. Und das auch nur, wenn du für dein Heimnetz eine feste IP hast.

Solange die Verbindung steht, ist eine Kommunikation zwischen beiden Geräten möglich. Wenn du mit den Smartphone unterwegs bist, solltest mit häufigen Verbindungsabbrüche rechnen (z.B. kein Empfang).

Wenn du nicht unbedingt UDP brauchst, ist eine TCP Verbindung der sichere Weg, um Daten zwischen den Geräten auszutauschen.
 
ja.. aber ich kann trotzdem nichts empfangen.. tcp oder udp ist in dem fall wohl egal.. da muss es doch einen weg geben?..
klar geht vpn.. oder mobilfunk anbieter mit fester ip...
aber programm technisch gehts doch auch irgendwie oder??
evtl. mit http post bzw. get? da musste ich mich aber erst nocj einarbeiten
 
mitch_HD2 schrieb:
wenn ich unterwegs bin kann ich zwar senden (DynDNS) aber empfangen natürlich nicht da ich ja per UMTS keine feste IP habe...

Sockets sind bidirektional. Read/Write geht in beide Richtungen.

Der Verbindungsaufbau (!) muss aber vom Handy -> DynDnsIP erfolgen.

Bestes Beispiel ist das HTTP Protokoll.

Der Client (=browser) ist hinter einer Firewall. Er kann Daten schicken
(POST) oder Daten abholen (GET).

Was nicht geht, ist das der Server die Verbindung zu Client aufbaut.

Das Problem kann man aber durch Polling umgehen (siehe z.B. WhatsApp,
HTTP Sockets bei HTML 5, ...). Der Client meldet sich alle x Sekunden / Minuten /.. beim Server und fragt "Hei hast du was für mich?".
 
Hej okay bin nun soweit dass ich alles auf TCP umgeschrieben habe...

Ja ich habe DynDNS..

habe einen Socket aufgemacht wo ich mittel bufferredWriter und out.write(STRING) an mein Server schicke...
er empfängt ihn.. ok!!!!

habe auch einen Socket aufgemacht wo ich mittels bufferedReader und in.readline einen String vom Server empfange OK!!! <<< auch vom mobilen Netz, das ist das was ich wollte...

nun habe ich aber folgendes gemacht
erst schickt der eine nachricht an den Server...
und direkt dahinter (im selben Socket) soll der eine andere Nachricht wieder Empfangen...
das funktioniert auch sobald ich dem Server Sage der soll erst empfangen und dann senden....
lasse ich das Senden aber weg... stürzt meine APP ab..
wie kann ich dies umgehen?
 
Welchen Fehler steht im Logcat?

Was macht deine App, wenn sie keine Antwort bekommt?

Behandelst du die Fehler, wenn es zu Probleme bei der Verbindung kommt. Schließt die App alle Streams?
 

Ähnliche Themen

D
Antworten
17
Aufrufe
395
datNeMo
D
M
Antworten
3
Aufrufe
146
moin
M
M
  • maksimilian
Antworten
2
Aufrufe
1.211
maksimilian
M
Zurück
Oben Unten