2010-05-13 32 views

Odpowiedz

1

Problemem był port, z którego korzystałem. Używałem 4444, ale okazuje się, że wiele sieci blokuje ten port. Port 1024 wydaje się działać dla większości.

+0

Gdzie znaleźć ten port lub jak zmienić jego wartość? –

1

Na poziomie aplikacji (zwykle) nie musisz się martwić, jakie połączenie transmisji danych jest dostępne dla telefonu.

Czy szukałeś problemów, np. Gdy używasz Wi-Fi, serwer sieciowy jest dostępny, ponieważ trafiasz do niego z sieci. Podczas gdy może nie być dostępny w ogóle z publicznego Internetu, to w jaki sposób połączenie 3G będzie próbowało połączyć się z serwerem.

Jaki błąd/wyjątek otrzymujesz w sieci 3G?

0

Nie powinno być nic dodatkowego między Wi-Fi i 3G. Wszystko, co uwzględniłem w moich uprawnieniach do manifestu, to android.permission.INTERNET, a to działa dobrze z Wifi lub 3G, więc zakładając, że Internet jest również wymagany dla Wifi (co nie jest do końca pewne, ponieważ nie mam wypróbowałem JUST Wifi) i już go zawarłeś, nie wiem nic więcej.

jeśli przypadkiem Wifi nie wymaga internetu, a zdarza się pracować bez niego, Manifest powinien zawierać taką linię:

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

który powinien udzielić internet (i 3G) dostęp do telefonu. Przepraszam, jeśli to nie odpowiada na pytanie, ale nie mogę wymyślić żadnego innego powodu, dla którego 3G byłoby problemem, gdy Wifi działa dobrze. Dodatkowo, upewnij się, że możesz uzyskać dostęp do sieci z innej lokalizacji poza domem - jak powiedziałeś wcześniej, może to być kwestia bezpieczeństwa uniemożliwiającego dostęp z zewnątrz. (Nie jestem pewien, z czym łączę się z 3G)

0

Wyjątkiem, który jest generowany podczas tworzenia gniazda, jest wyjątek IOException i przekroczony został limit czasu (4000). Gdy telefon działa w trybie Wi-Fi, działa dobrze, ale gdy korzysta z 3G, gniazdo nie może połączyć się z hostem/portem.

0

Musisz sprawdzić u swojej firmy telefonicznej (i powodzenia w znalezieniu kogoś, kto może odpowiedzieć !!), że sieć 3G nie blokuje portów, które oczekujesz, że będą otwarte (i kiedy są w sieci Wi-Fi tryb). Niektóre firmy telekomunikacyjne blokują niemal wszystko, czego oczekujesz (a Twój stos aplikacji zakłada, że ​​jest dostępny), aby był standardem w sieciach 3G (ping, telnet, RDP itp.).

1

Za to, co jest warte, miałem ten sam dokładny problem. Moja aplikacja działałaby idealnie na WiFi, ale nie na 3G. Jestem na Verizon. Używałem też portu 4444, ponieważ myślałem, że jest to "losowy" port, który wybrałem. Dzięki Verizon Wireless blokując ten port spędziłem ponad godzinę próbując zdiagnozować mój błąd. Przełączyłem się na port 444 i teraz działa dobrze. Bardzo frustrujące. Mam nadzieję, że to pomoże komuś innemu.

Powiązane problemy