Bonjour à tous,
Je suis en train de développer une application sur Android à l'aide de Libgdx. Celle-ci récupère des données transmires via wifi par une application tournant sur windows et s'en sert pour l'application android. Le taux d'émission de l'application windows est de 99 paquets/s.
Le souci que je rencontre est que les paquets mettent du temps à être reçu, du coup mon affichage n'est pas fluide du tout.
j'ai utilisé un thread pour le côté réception de paquets.
J'aimerai votre avis, qu'est ce qui ne va pas dans mon implémentation? Est ce que le choix d'utiliser des paquets UDP est judicieux? Y'a-t-il une meilleure façon de procéder?
Un grand merci d'avance.
Bien à vous.
ps: ci dessous le code que j'utilise dans la classe gamescreen de mon application Libgdx
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44 try { ****socket = new DatagramSocket(port); ****paquet = new DatagramPacket(buffer, buffer.length); * } * catch (SocketException e) { ****e.getMessage(); } catch (IOException e) { ****e.getMessage(); } * copar = new byte[4]; * new Thread(new Runnable() { ****@Override ****public void run() { ********* ******while(true){ ********try { ************socket.receive(paquet); ************arr = paquet.getData(); * ************for (int i=10+2*36-1; i<=13+2*36-1; i++) ************{copar[i-10-2*36+1] = paquet.getData()[i];} ************ptc= ByteBuffer.wrap(copar).order(ByteOrder.LITTLE_ENDIAN).getFloat(); ********} * ********catch (IOException e) ********{ ************e.getMessage(); ********} * ********Gdx.app.postRunnable(new Runnable() { ************@Override ************public void run() { ***********************************results.add(result); ************} ********}); ****}} }).start();
Partager