DatagramPacket & DatagramSocket recupération des données - Java - Programmation
Marsh Posté le 17-06-2006 à 14:21:17
Bon, voila, j'ai trouvé le problème et la solution qui va avec. Je sais pas si c'est ce qu'on peux faire de mieux, mais ça marche.
Pour commencer, apparement, l'addresse mémoire de packet, bien qu'un new soit fait, reste la meme. Ce qui veux dire que quand je lis les données, je lis uniquement les dernière donnée inserées d'ou l'affichace de 5;5;5;5;5.
La solution que j'ai emploiée est simplement de stocker les valeurs sous forme de String. En faisant ça, je force le système a stocker les valeurs dans une nouvelle plage mémoire -> pas de réécriture des données.
donc a la place de
monTamponData.add(packet.getData());
monTamponIP.add(packet.getAddress());
je met :
monTamponData.add(new String(packet.getData(), 0, packet.getLength()));
monTamponIP.add(new String(packet.getAddress().toString()));
Aller, bonne journée
@+
Marsh Posté le 17-06-2006 à 12:39:27
Bonjour,
j'ai une application Serveur qui recoit un flux de données en UDP. Jusque là, pas de problème ou du moins tant que les données arrive pas trop vite.
je m'explique:
une machine envoie les données 1;2;3;4;5 sur ~1 milisecondes (connection ethernet 10 mb half)
J'ai controlé avec ethreal, les données arrive correctement.
le problème, c'est que mon programme réagit comme s'il avait reçu 5 paquets, mais ils contienent tous les même data
donc en affichant ce que je recois, j'ai les data 5;5;5;5;5
voici le code:
J'ai essayé d'utiliser un vector comme tampon en me disant que cela permeterai une écriture plus rapide, mais rien a faire..
Quelqu'un a une idée ?