2010-05-13 23 views

Répondre

1

Le problème était le port que j'utilisais. J'utilisais 4444, mais il s'avère que de nombreux réseaux bloquent ce port. Le port 1024 semble fonctionner pour la plupart.

+0

Où trouver ce port ou comment changer sa valeur? –

1

Au niveau de l'application, vous (normalement) n'avez pas à vous soucier de la connexion de données disponible pour le téléphone.

Avez-vous examiné des problèmes tels que lorsque vous utilisez le Wi-Fi, votre serveur Web est accessible depuis que vous l'utilisez depuis votre réseau. Considérant que, il peut ne pas être accessible du tout de l'Internet public qui est comment la connexion 3G essayera de se connecter au serveur.

Quelle erreur/exception recevez-vous sur 3G?

0

Il ne devrait pas y avoir quelque chose de plus entre le Wifi et la 3G. Tout ce que j'ai inclus dans mes autorisations Manifest est android.permission.INTERNET, et cela fonctionne bien avec Wifi ou 3G, donc en supposant que INTERNET est également requis pour le Wifi (ce dont je ne suis pas entièrement sûr, puisque je n'ai pas essayé JUST Wifi) et vous l'avez déjà inclus, je ne connais rien d'autre.

Si, par hasard, Wifi ne nécessite pas Internet, et il arrive à travailler sans elle, le Manifest doit inclure une ligne comme:

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

qui devrait accorder Internet (et 3G) un accès pour votre téléphone. Désolé si cela ne répond pas à la question, mais je ne peux pas penser à toute autre raison que la 3G serait un problème lorsque le Wifi fonctionne bien. En outre, assurez-vous que vous pouvez accéder au réseau à partir d'un autre endroit à l'extérieur - comme je l'ai dit auparavant, cela peut être une question de sécurité empêchant l'accès extérieur en quelque sorte. (Vous ne savez pas à quoi vous connectez la 3G)

0

L'exception qui est levée lorsque le socket est créé est une exception IOException, et le délai (4000) est atteint. Lorsque le téléphone est en Wi-Fi, il fonctionne correctement, mais lorsqu'il utilise la 3G, la prise ne peut pas se connecter à l'hôte/au port.

0

Vous devrez vérifier auprès de votre compagnie de téléphone (et bonne chance de trouver quelqu'un qui peut répondre !!) que le réseau 3G ne bloque pas les ports que vous attendez d'être ouverts (et sont en WiFi mode). Certains opérateurs bloquent presque tout ce que vous attendez (et la pile de votre application suppose être disponible) pour être standard sur les réseaux 3G (ping, telnet, RDP etc., etc.).

1

Pour ce que ça vaut, j'ai eu le même problème. Mon application fonctionnerait parfaitement sur WiFi mais pas sur 3G. Je suis sur Verizon. J'utilisais aussi le port 4444 parce que je pensais que c'était un port "aléatoire" que j'avais choisi. Grâce à Verizon Wireless qui bloque ce port, j'ai passé plus d'une heure à essayer de diagnostiquer mon erreur. Je suis passé au port 444 et ça fonctionne bien maintenant. Très frustrant. J'espère que cela aidera quelqu'un d'autre.