IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ActionScript 3 Discussion :

Serveur java XMLSocket


Sujet :

ActionScript 3

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 48
    Par défaut Serveur java XMLSocket
    Bonjour à tous (et à toutes),

    Je commence un peu à regarder ce qu'on peut faire avec flash et je voudrais faire un serveur java tout bête.
    j'ai pris l'exemple d'adobe pour le côté serveur :

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    import java.io.*; 
    import java.net.*; 
     
    class SimpleServer 
    { 
    	private static SimpleServer server; 
        ServerSocket socket; 
        Socket incoming; 
        BufferedReader readerIn; 
        PrintStream printOut; 
     
        public static void main(String[] args) 
        { 
            int port = 8080; 
     
            try 
            { 
                port = Integer.parseInt(args[0]); 
            } 
            catch (ArrayIndexOutOfBoundsException e) 
            { 
                // Catch exception and keep going. 
            } 
     
            server = new SimpleServer(port); 
        } 
     
        private SimpleServer(int port) 
        { 
            System.out.println(">> Starting SimpleServer"); 
            try 
            { 
                socket = new ServerSocket(port); 
                incoming = socket.accept(); 
                readerIn = new BufferedReader(new InputStreamReader(incoming.getInputStream())); 
                printOut = new PrintStream(incoming.getOutputStream()); 
                out("Enter EXIT to exit.\r"); 
                boolean done = false; 
                while (!done) 
                { 
                    String str = readerIn.readLine(); 
                    if (str == null) 
                    { 
                        done = true; 
                    } 
                    else 
                    { 
                        out(str);
                        if(str.trim().equals("EXIT")) 
                        { 
                            done = true; 
                        } 
                    } 
                    incoming.close(); 
                }
                if(done == true)
                {
                	out("Déconnecté");
                }
            } 
            catch (Exception e) 
            { 
                System.out.println(e); 
            } 
        } 
     
        private void out(String str) 
        { 
            printOut.println(str.trim()+ (char)0x00);
            printOut.flush();
            System.out.println(str); 
        } 
    }
    et du côté client, j'ai cela :

    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
    package {
     
    		import flash.net.XMLSocket;
    		import flash.events.DataEvent;
    		import flash.events.MouseEvent;
    		import flash.events.Event;
    		import flash.display.MovieClip;
     
    	public class Main extends MovieClip {
     
    		var _socket:XMLSocket;
     
    		public function Main() {
    			// constructor code
    			this._socket = new XMLSocket();
    			this._socket.connect('127.0.0.1',8080);
    			this._socket.addEventListener(DataEvent.DATA, reponse);
    			this._socket.addEventListener(Event.CLOSE, handlerDeConnexion);
    			btnEnvoyer.addEventListener(MouseEvent.CLICK, envoyer);
     
    		}
     
     
    		private function reponse(event:DataEvent):void 
    		{ 
    			  txtReponse.text = event.data; 
     
     
    		}
     
    		private function handlerDeConnexion(event:Event):void{
     
    			trace ("DECO !");
    		}
     
    		public function envoyer(event:MouseEvent):void{
     
     
    			_socket.send(txtChaine.text+"/n");
    		}
     
    	}
     
    }
    Lorsque je lance l'application, mon textfield txtReponse se remplace bien par "Enter EXIT to exit." mais lorsque j'envoie une chaine de caractère au serveur à l'aide d'un input, il ne m'affiche rien.

    Dans la console non plus, c'est au moment ou je ferme mon application que le serveur affiche (dans la console) "Echo :" et les chaines de caractères que j'ai envoyé suivi d'un espace (alors qu'il aurait dû mettre un "Echo : " par chaine de caractère).

    Voilà, je ne comprends pas bien d'où ça vient et comment résoudre ce problème.


    D'avance, merci =D

  2. #2
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    Est-ce une faute de recopie dans le forum le "/n" dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _socket.send(txtChaine.text+"/n");
    ?

    Si non essaye avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _socket.send(txtChaine.text+"\n");

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 48
    Par défaut
    Merci, cela m'a un peu aidé ...

    mais avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _socket.send(txtChaine.text+"\n");
    Il se déconnecte juste après, et dans la console il affiche

    java.net.SocketException: socket closed
    .. ?!

  4. #4
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    Sans doute que ce code :
    n'est pas au bon endroit.

    Il serait plutôt à utiliser ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if(done == true)
    {
    	out("Déconnecté");
     
    	incoming.close();
    }

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 48
    Par défaut
    Merci ...

    Comme d'habitude je vais trop vite et je ne prend pas le temps de bien étudier la chose...

    Sinon, je voulais savoir quelle solution adopter pour communiquer le plus simplement possible avec une base de données.

    D'avance, merci.

  6. #6
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 48
    Par défaut
    J'ai essayé d'installer mysql connector java, j'ai lu sur la documentation que pour avoir une connexion, il fallait faire de la sorte:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    conn = DriverManager.getConnection("jdbc:mysql://localhost/test?" +
                                                "user=monty&password=greatsqldb");
    Je ne vois pas à quoi le /test? après localhost correspond. Mysql est installé avec wamp.

    =)

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/10/2008, 12h28
  2. [JBoss] Réaliser un client-serveur Java
    Par Sylario dans le forum Wildfly/JBoss
    Réponses: 8
    Dernier message: 04/04/2006, 15h28
  3. [Socket] Probleme entre un Client C et un serveur JAVA
    Par bpy1401 dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 28/02/2006, 08h40
  4. [Système] Ecouter un port serveur Java
    Par sozie9372 dans le forum Langage
    Réponses: 3
    Dernier message: 19/01/2006, 21h35
  5. [SOCKET] Client C connecté à un serveur Java
    Par missllyss dans le forum Développement
    Réponses: 2
    Dernier message: 07/06/2004, 13h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo