2010-05-13 6 views

Antwort

1

Das Problem war der Port, den ich verwendete. Ich benutzte 4444, aber es stellt sich heraus, dass viele Netzwerke diesen Port blockieren. Port 1024 scheint für die meisten zu funktionieren.

+0

Wo finde ich diesen Port oder wie ändere ich seinen Wert? –

1

Auf der Anwendungsebene müssen Sie sich (normalerweise) nicht darum kümmern, welche Datenverbindung für das Telefon verfügbar ist.

Haben Sie sich mit Problemen beschäftigt, wie zB wenn Sie WiFi benutzen, ist Ihr Webserver erreichbar, da Sie ihn von Ihrem Netzwerk aus erreichen. Es ist möglich, dass es vom öffentlichen Internet aus überhaupt nicht zugänglich ist, wie die 3G-Verbindung versuchen wird, eine Verbindung zum Server herzustellen.

Welchen Fehler/Ausnahme erhalten Sie auf 3G?

0

Es sollte nichts Zusätzliches zwischen Wifi und 3G geben. Alles, was ich in meinen Manifest Permissions eingeschlossen habe, ist android.permission.INTERNET, und das funktioniert gut mit entweder Wifi oder 3G, also angenommen, INTERNET ist auch für Wifi erforderlich (worüber ich mir nicht ganz sicher bin, da ich nicht habe versucht JUST Wifi) und Sie haben es bereits aufgenommen, ich weiß nichts anderes.

Wenn durch Zufall Wifi nicht über einen Internet erfordert, und es geschieht, ohne es zu arbeiten, soll das Manifest enthält eine Zeile wie:

<uses-permission android:name="android.permission.INTERNET"></uses-permission> 

das Internet (und 3G) Zugang für Ihr Telefon gewähren soll. Entschuldigung, wenn das die Frage nicht beantwortet, aber ich kann an keinen anderen Grund denken, 3G wäre ein Problem, wenn Wifi gut funktioniert. Stellen Sie außerdem sicher, dass Sie von einem anderen externen Standort aus auf das Netzwerk zugreifen können. Wie bereits erwähnt, kann es eine Sicherheitsfrage sein, die den Zugriff von außen verhindert. (Nicht sicher, wofür Sie 3G verwenden)

0

Die Ausnahme, die beim Herstellen des Sockets ausgelöst wird, ist eine IOException, und das Timeout (4000) wird erreicht. Wenn das Telefon in Wi-Fi ist, funktioniert es gut, aber wenn es 3G verwendet, kann der Socket keine Verbindung zum Host/Port herstellen.

0

Sie müssen sich bei Ihrer Telefongesellschaft erkundigen (und viel Glück bei der Suche nach jemandem, der antworten kann !!), dass das 3G-Netzwerk nicht die Ports blockiert, die Sie erwarten (und im WLAN sind) Modus). Einige Telcos blockieren fast alles, was Sie erwarten würden (und Ihr App-Stack wird als verfügbar vorausgesetzt), um Standard bei 3G-Netzen zu sein (Ping, Telnet, RDP usw.).

1

Für was es wert ist, hatte ich das gleiche genaue Problem. Meine App würde perfekt über WLAN funktionieren, aber nicht über 3G. Ich bin auf Verizon. Ich benutzte auch Port 4444, weil ich dachte, dass es ein "zufälliger" Port war, den ich gewählt hatte. Dank Verizon Wireless, der diesen Port blockiert, habe ich über eine Stunde damit verbracht, meinen Fehler zu diagnostizieren. Ich wechselte zu Port 444 und es funktioniert jetzt gut. Sehr frustrierend. Hoffentlich hilft das jemand anderem.

Verwandte Themen