Problème connexion XMLServer entre Flash (AS) et Java

Problème connexion XMLServer entre Flash (AS) et Java - Flash/ActionScript - Programmation

Marsh Posté le 18-04-2006 à 19:21:20    

Bonjour
 
J'ai un soucis pour établir une connexion entre un programme en Flash et un autre en Java.
Dans l'idée de faire une connexion TCP/XML entre les deux, j'ai essayé de faire ceci :
 
côté client (flash) voici les lignes de commandes :

Code :
  1. var socket = new XMLSocket();
  2. socket.onData = reception;
  3. System.security.loadPolicy('xmlsocket://'+serv_ip+':'+serv_port);
  4. socket.connect(serv_ip,serv_port);
  5. socket.onConnect = connexion;


 
côté serveur (java)

Code :
  1. in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
  2. mess = in.readLine();


 
La connexion entre les deux est bien établie, par contre le serveur attend la ligne de demande du CrossDomainPolicy, donc rien ne bouge... jusqu'à ce que je ferme l'application Flash. En effet à ce moment là l'application Java m'indique avoir reçu la ligne "<policy-file-request/>" mais c'est trop tard :(
 
Comment ça se fait que l'application Java reste bloquée sur readLine() alors que "<policy-file-request/>" semble être dans le buffer?
 
Je précise que l'application Java est lancée à partir d'une page HTML lue par IE. C'est du Flash 8, AS 2.0.
L'application Java est en 1.5.0_6.
Merci pour votre aide :hello:

Reply

Marsh Posté le 18-04-2006 à 19:21:20   

Reply

Marsh Posté le 18-04-2006 à 23:33:21    

up

Reply

Marsh Posté le 19-04-2006 à 07:43:43    

je suis pas sur mais je pense qu'il doit y avoir un parametre special dans la balise object qui autorise la creation de requetes....


---------------
D3
Reply

Marsh Posté le 19-04-2006 à 09:46:51    

Je n'ai pas trouvé de balise spéciale dans la page qui résolve le problème.
C'est comme si le  programme Java attendait la fin de la ligne pour continuer et c'est seulement lorsque l'application Flash est fermée, donc la connexion interrompue, que ça se débloque.
Est-il possible de mettre un timeout sur le fonction "in.readLine()" (prog Java) pour qu'au bout de 2 secondes par exemple il cesse d'attendre d'autres infos pour rien? :??:

Reply

Marsh Posté le 19-04-2006 à 11:36:55    

Il est possible d'utiliser "public void setSoTimeout(int timeout) throws SocketException" pour faire un timeout mais le résultat n'est pas très propre...
J'aimerai vraiment trouver pourquoi Java attend bètement la fin de la ligne alors qu'il l'a dans le buffer? J'ai oublié de préciser que dans le buffer à la fin de la logne il y a une sorte de caractère "carré", c'est peut être un problème de reconnaissance du retour chariot envoyé par Flash à la fin de la ligne.
Que faire??

Reply

Marsh Posté le 19-04-2006 à 17:19:15    

Après plein de tests il se trouve que la fonction readLine() s'arrête que lorsque elle détecte un retour chariot alors que Flash ne lui envoi qu'un caractère NUL.
Pour que ça fonctionne j'ai du récupérer les caractères un par un jusqu'au caractère NUL mais ce n'est pas super propre alors si vous avez une idée pour que ça fonctionne uniquement avec readLine() merci de m'aider :hello:

Reply

Marsh Posté le 27-04-2006 à 08:33:13    

XK a écrit :

Après plein de tests il se trouve que la fonction readLine() s'arrête que lorsque elle détecte un retour chariot alors que Flash ne lui envoi qu'un caractère NUL.
Pour que ça fonctionne j'ai du récupérer les caractères un par un jusqu'au caractère NUL mais ce n'est pas super propre alors si vous avez une idée pour que ça fonctionne uniquement avec readLine() merci de m'aider :hello:


 
enjouant avec http://java.sun.com/j2se/1.5.0/doc [...] nizer.html ?

Reply

Marsh Posté le 28-04-2006 à 03:15:14    

XK a écrit :

Après plein de tests il se trouve que la fonction readLine() s'arrête que lorsque elle détecte un retour chariot alors que Flash ne lui envoi qu'un caractère NUL.
Pour que ça fonctionne j'ai du récupérer les caractères un par un jusqu'au caractère NUL mais ce n'est pas super propre alors si vous avez une idée pour que ça fonctionne uniquement avec readLine() merci de m'aider :hello:


 
 
Ok, je suis tombé sur "Java API for XML Messaging (JAXM) Downloads & Specifications" qui t'interessera surement.
http://java.sun.com/xml/downloads/jaxm.html

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed