Bonsoir,
J'ai besoin d'un coup de main mais surtout d'explications !
Je crée une application android toute simple, qui consiste à récupérer un packet UDP émis par un serveur sur mon réseau internet (wifi).
*** Je ne connais rien sur tout ce qui touche les réseaux.. alors une vraie galère pour faire des configurations, ou lire des doc ou tutos qui me semblent etre du chinois... ***
Le serveur broadcaste des paquets toutes les 5 secondes sur mon réseau au port 3001, . Il fonctionne bien puisque en lancant mon serveur sur une machine, puis un client en C sur une autre, la communication se fait.
Maintenant le problème est lorsque j'essaie de coder mon client android... il doit pouvoir écouter sur le port 3001 de mon réseau internet, le même où le serveur émet...
Cependant, je teste mon appli sur mon propre tel, via mon cable USB et aucun packet n'est recu...
Voici mon client, qui s'execute dans le thread AsyncTask :
Je lance mon appli sur mon tel, en mode debug, puis l'execution s'arrete au niveau de la methode receive().
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 @Override protected Void doInBackground(Void... arg0) { String receivedString = ""; byte[] receiveData = new byte[1024]; DatagramSocket clientSocket; try { clientSocket = new DatagramSocket(3001); DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); clientSocket.receive(receivePacket); receivedString = new String(receivePacket.getData()); clientSocket.close(); } catch (SocketException e) { Log.v("SocketExceptionOccured", e.toString()); e.printStackTrace(); } catch (IOException e) { Log.v("IOExceptionOccured", e.toString()); e.printStackTrace(); } Toast.makeText(getBaseContext(), receivedString, Toast.LENGTH_LONG) .show(); return null; }
Je suppose que c'est parce qu'aucune donnée n'est détectée, et reste en attente.
Alors il y a une histoire de proxy, qu'on ne peut pas tester le vrai réseau sur l'émulateur (mon tel branché via USB est-il toujours considéré comme émulateur ?)
Voila je ne sait pas du tout comment écouter sur un port donné de mon réseau wifi de la maison..
J'ai beau éplucher les StackOverFlow, developpez.com etc.... ayant de très fortes lacunes en réseau, je galere pas mal a comprendre comment tout cela fonctionne, et j'aimerais beaucoup connaitre vos méthodes pour tester vos appli android qui utilisent le wifi...
Merci par avance pour votre aide, et éclaircissements... j'en attends beaucoup
Partager