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

JavaFX Discussion :

Comment utiliser les sockets en tâche de fond


Sujet :

JavaFX

  1. #1
    Candidat au Club
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Juin 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Architecte réseau
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2012
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Comment utiliser les sockets en tâche de fond
    J'ai un programme javafx/android pour gérer la réception des sms.

    l'application android joue le rôle de serveur, elle renvoie par l'intermédiaire d'un socket un sms et l'application javafx devrait réceptionner le sms envoyé et le stocker dans une base de données locale.

    Voici un morceau de code sur l'appli javafx:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
             Socket  socket = new Socket(HOST, PORT);
             Scanner  scanner = new Scanner(socket.getInputStream());
             OutputStream outputStream = new DataOutputStream(new BufferedOutputStream(socket.getOutputStream()));
    le problème c'est que lorsque j'essaie de lire les données reçues par le scanner, il ne se passe rien.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      while (scanner.hasNext()) {
                textArea.setText(textArea.getText() + "\n" + scanner.nextLine()); // afficher le sms sur un TextArea
     }
    J'ai lancé le code ci-dessous dans un Thread , dans Platform.runLater mais sans succès

    merci d'avance pour votre aide.

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 845
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 845
    Points : 22 853
    Points
    22 853
    Billets dans le blog
    51
    Par défaut
    Il ne se passe rien quoi ? L'application bloque ou aucune donnée n'est jamais reçue ou les deux ?

    Et sinon : Tutoriel sur l'exécution d'une tâche de fond en JavaFX
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Candidat au Club
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Juin 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Architecte réseau
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2012
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    l'application ne bloque pas mais aucune donnée n'est jamais reçue,

    lorsque je lance l'application ci-dessous en ligne de commande, les sms sont bien reçues:

    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
    import java.io.*;
    import java.net.Socket;
    import java.util.Scanner;
     
    public class Test {
     
        public static void main(String[] args) {
     
        try
            Socket socket = new Socket("localhost", 11111);
            Scanner sc = new Scanner(socket.getInputStream());
            while(sc.hasNext()) {
                System.out.println("get: " + sc.nextLine());
            }
        } catch (IOException e) {}
          catch (Exception e) {}
        }   
    }
    Comment devrais je alors insérer ces codes dans une application javafx

  4. #4
    Candidat au Club
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Juin 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Architecte réseau
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2012
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par rimste Voir le message
    l'application ne bloque pas mais aucune donnée n'est jamais reçue,

    lorsque je lance l'application ci-dessous en ligne de commande, les sms sont bien reçues:

    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
    import java.io.*;
    import java.net.Socket;
    import java.util.Scanner;
     
    public class Test {
     
        public static void main(String[] args) {
     
        try
            Socket socket = new Socket("localhost", 11111);
            Scanner sc = new Scanner(socket.getInputStream());
            while(sc.hasNext()) {
                System.out.println("get: " + sc.nextLine());
            }
        } catch (IOException e) {}
          catch (Exception e) {}
        }   
    }
    Comment devrais je alors insérer ces codes dans une application javafx

    Après avoir lu votre tutoriel, j'ai réussi à implémenter le code en javafx.

    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
    public class SmsTask extends Task<Void> {
     
      private Scanner scanner;
     
      public SmsTask(Scanner scanner) {
       this.scanner = scanner;
     }
     
      @Override
      protected Void call() throws Exception {
        while (scanner.hasNext()) {
                System.out.println("get : " + scanner.nextLine());
            }
            return null;
      }
    }
    Merci Bouye !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/06/2010, 16h33
  2. Réponses: 6
    Dernier message: 01/02/2009, 02h44
  3. Réponses: 1
    Dernier message: 20/02/2007, 18h47
  4. [CF][PPC/VB.NET] Comment utiliser les Socket avec Pocket PC ?
    Par joefou dans le forum Windows Mobile
    Réponses: 5
    Dernier message: 17/05/2005, 14h24
  5. Comment utiliser les styles XP avec Dev-C++?
    Par abraxas dans le forum Dev-C++
    Réponses: 3
    Dernier message: 05/10/2003, 19h47

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