TCP-Server über Handy

06/01/2014 19:14 Doktor.#1
Hey,
ich musste für ein kleines Projekt ein TCP-Server für mein Handy erstellen, bisher lief alles perfekt, nur als ich das WLAN auf meinem Handy ausgeschaltet hab, lief gar nichts mehr.
IP etc. sind alle korrekt, bin auch noch neu auf dem Gebiet mit TCP, aber soweit ich weis musste ich für ein Server den Port freischalten, wenn es nicht mehr im selben Netzwerk ist? Wenn ja, geht das wohl schlecht übers Handy, oder?

Fragen:
Wie stell ich es an das es auch über Mobiles Internet läuft?
Woran liegt es das es nicht geht, wenn es nicht meine eigene Inkompetenz sein sollte?
Wäre UDP ne bessere Lösung? Soll schneller sein, aber dafür nicht so sicher wie TCP?

Mfg.
Doktor.
06/01/2014 19:44 XxharCs#2
Du musst immer den Port wieder freilassen, sprich das Socket schließen, wenn du das Programm schließt oder sich das WLAN whatever schließt. Ich denke als du das WLAN ausgeschaltet hast, ging nix mehr, weil der Port noch immer besetzt war.

Naja damit es normal übers SIM Internet auch funktioniert, brauchst ja nur die Permissions.
Code:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
06/01/2014 19:45 alpines#3
Ja, Port Mapping oder Port Forwarding musst du aktivieren, das wird bei mobilen Geräten ein bisschen schwieriger, da dir der Router nicht zur Verfügung steht wie zuhause im WLAN.

UDP ist nicht sicherer als TCP, da der einzige Unterschied zwischen UDP und TCP der ist, dass UDP ein Paket einmal absendet und TCP das Paket solange sendet bis vom Server die Bestätigung kam das das Paket erfolgreich eingetroffen ist.

UDP eignet sich in Bereichen wo viele Pakete gesendet werden gut, wie z.B. bei MMORPGs, denn wenn da mal mit TCP ein Paketstau entsteht kann dein ganzer Upload still liegen.
06/01/2014 19:46 Mostey#4
Quote:
Originally Posted by Doktor. View Post
Fragen:
Wie stell ich es an das es auch über Mobiles Internet läuft?
Ports öffnen und versichern, das ne Verbindung besteht.

Quote:
Originally Posted by Doktor. View Post
Woran liegt es das es nicht geht, wenn es nicht meine eigene Inkompetenz sein sollte?
Kann an allem liegen. Entweder blockt die Firewall da was oder du hast erst gar keine Verbindung zum Server. Oder es liegt natürlich direkt an deinem Server aber du hast ja nicht ein Wort über die Implementierung verloren.

Quote:
Originally Posted by Doktor. View Post
Wäre UDP ne bessere Lösung? Soll schneller sein, aber dafür nicht so sicher wie TCP?
Tja, das kommt auf den Zweck des Servers an. TCP ist langsamer, checkt aber ob die Pakete vollständig sind und schickt generell ne Antwort zurück. UDP ist das egal, da kommen Pakete durch und wenn da mal was verloren geht, kümmert das nicht weiter. Deshalb nutzen Streamdienste auch UDP, während der Browser über TCP (und HTTP eben) sendet.