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

Java ME Discussion :

connexion via socket depuis un mobile


Sujet :

Java ME

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2010
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 51
    Points : 28
    Points
    28
    Par défaut connexion via socket depuis un mobile
    Bonsoir,
    j'envisage se connecter à un serveur depuis un mobile et ce via une socket.
    voila le code que j'ai mis pour tel but:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    System.out.println("okkkkkkkk");
    ServerSocketConnection ssc = (ServerSocketConnection)Connector.open("socket://:5555");
    System.out.println("okkkkkkkk");
    StreamConnection sc = null;
     
                    try{
                    sc = ssc.acceptAndOpen();
                    System.out.println("okkkkkkkk");
                    }
    mais j'obtient ce message:
    Warning: To avoid potential deadlock, operations that may block, such as
    networking, should be performed in a different thread than the
    commandAction() handler.

    je vois bien qu'un thread va résoudre le problème mais ça me parait un peu ambigüe, veuillez m'aider.
    (vous allez vous étonner pour tous ces okkkkkkk mais c'est ma façon de connaitre le lieu de blocage)
    Merci

  2. #2
    Membre éprouvé
    Inscrit en
    Juin 2006
    Messages
    795
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 795
    Points : 1 270
    Points
    1 270
    Par défaut
    Salut b_imen,

    je vois bien qu'un thread va résoudre le problème mais ça me parait un peu ambigüe
    Qu'est-ce qui te parrait ambigu ?
    Si c'est la création du Thread, il doit y avoir des exemples qui trainent sur le net (voir dans la FAQ de dvp). Sinon la doc de sun peut t'aider aussi (il y a un mini exemple).

    Si c'est le warning qui est ambigu, il est juste là pour prévenir que ton application pourrait se bloquer suite à l'execution de certaine méthodes (dans ton cas, j'imagine qu'il s'agit de "acceptAndOpen()" qui bloque, attandant une connexion).

    A plus

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2010
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 51
    Points : 28
    Points
    28
    Par défaut
    bonjour,

    j'ai vraiment honte..je vise créer un client et j'utilise le code d'un serveur
    bref, voila le nouveau code (en utilisant un thread):
    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
    try{
    Thread t = new Thread();
    System.out.println("okkkkkkkk");
    t.start();
    System.out.println("okkkkkkkk");
    }catch (Exception x){
                      }
     
    public void run() {
     
            try{
                    System.out.println("debut.........");
                    SocketConnection sc = (SocketConnection)
                    Connector.open("socket://localhost:5555");
                    System.out.println("c bon");
                    OutputStream os = null;
                     try{
                         os = sc.openOutputStream();
                         byte[] data = "Hello!".getBytes();
                         os.write(data);
                    } finally{
                   sc.close();
                   os.close();
      }
     
     
                  }catch (Exception x){
            }
     }
    voila ce que j'obtiens en utilisant ce code:
    Starting emulator in execution mode
    Running with storage root C:\Documents and Settings\amouna\j2mewtk\2.5.2\appdb\DefaultGrayPhone
    Running with locale: French_France.1252
    Running in the identified_third_party security domain
    okkkkkkkk
    okkkkkkkk


    cela me bloque
    j'ai vraiment besoin de vos conseils
    Merci

  4. #4
    Membre éprouvé
    Inscrit en
    Juin 2006
    Messages
    795
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 795
    Points : 1 270
    Points
    1 270
    Par défaut
    Allons, allons, il n'y a pas de quoi avoir honte.
    Et pour le coup du client/serveur, je ne serais pas celui qui te jettera la première pierre vu que je mélange aussi les deux concepts...

    Pour utiliser ton Thread, il faut que tu crées une classe qui hérite de thread et que tu surcharges la methode run() de celle-ci :
    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
    class MonThread extends Thread {
             MonThread() {}
     
             public void run() {
                 // ajoute ici ce que tu veux faire - exemple :
                 System.out.println("debut.........");
                 SocketConnection sc = (SocketConnection)
                 Connector.open("socket://localhost:5555");
                 System.out.println("c bon");
                 OutputStream os = null;
                 try{
                      os = sc.openOutputStream();
                      byte[] data = "Hello!".getBytes();
                      os.write(data);
                 }
                 finally{
                      os.close();
                      sc.close();
                 }
                 catch (Exception x){
                      System.out.printlnx.ToString());
                 }
             }
         }
    Après il serait peut-être judicieux (ou pas, selon tes besoins) de déclarer la socket dans ta classe qui contient ton Thread si tu veux y avoir acces en dehors de ton Thread.

    En espérant avoir aidé.

    Edit : Hola la vilaine faute d'orthographe...

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mai 2010
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 51
    Points : 28
    Points
    28
    Par défaut

    vous m'avez énormément aidé Anikinisan..


  6. #6
    Membre éprouvé
    Inscrit en
    Juin 2006
    Messages
    795
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 795
    Points : 1 270
    Points
    1 270
    Par défaut
    De rien !
    Ca fait plaisir à entendre (même si je ne fais que le lire...)

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

Discussions similaires

  1. [System.Net.Sockets] Connexion via un proxy
    Par kendras dans le forum Développement
    Réponses: 15
    Dernier message: 17/02/2009, 15h52
  2. Réponses: 0
    Dernier message: 02/09/2008, 22h06
  3. Connexion via Socket JAVA
    Par jihene dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 08/06/2006, 19h50
  4. Réponses: 9
    Dernier message: 20/01/2006, 13h04
  5. Internet sur PC portable depuis Téléphone Mobile (via GSM)
    Par krugernet dans le forum Développement
    Réponses: 4
    Dernier message: 16/11/2003, 18h28

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