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

API standards et tierces Android Discussion :

Problème avec des sockets


Sujet :

API standards et tierces Android

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 5
    Par défaut Problème avec des sockets
    Bonjour

    j'ai essayé de faire communiquer deux application java sur mon pc en utilisant le code simple suivant :

    code client :
    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
    public class Client {
     
        public static void main(String[] zero) {
     
            Socket socket;
            try {
                 socket = new Socket(InetAddress.getLocalHost(),2009); 
                     socket.close();
     
            }catch (UnknownHostException e) {
     
                e.printStackTrace();
            }catch (IOException e) {
     
                e.printStackTrace();
            }
        }
     
    }
    code 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
    public class Serveur {
     
        public static void main(String[] zero) {
     
            ServerSocket socketserver  ;
            Socket socketduserveur ;
     
            try {
     
                socketserver = new ServerSocket(2009);
                socketduserveur = socketserver.accept();
     
                System.out.println("Un zéro s'est connecté !");
                    socketserver.close();
                    socketduserveur.close();
     
            }catch (IOException e) {
                e.printStackTrace();
            }
        }
     
    }
    jusqu'à içi tous marche bien et je reçois bien le message : un zéro c'est connecté

    maintenant j'essaye de faire la meme chose mais cette fois le client est une application android (j'utilise mon protable android comme emulateur )

    voila le code:

    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
    public class MainActivity extends Activity {
    Socket socket;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            try {
                 socket = new Socket(InetAddress.getLocalHost(),2009); 
                     socket.close();
     
            }catch (UnknownHostException e) {
     
                e.printStackTrace();
            }catch (IOException e) {
     
                e.printStackTrace();
            }
    je lance le serveur puis l'application android , aucune erreur mais je reçois aucun message !!!!

    avez-vous des idées, des conseils , des remarques ?????

    j'ai vraiment besoin de votre aide {#emotions_dlg.triste}

    Merci d'avance

  2. #2
    Membre chevronné Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Par défaut
    getLocalHost() te retourne l'Iadresse du support.

    Quand tu communiquais de ton pc vers lui même, cela allait bien car l'adresse était bonne.

    Mais sur ton smartphone, getLocalHost te retourne l'adresse du smartphone et non du pc. Ton code client marche (= pas d'erreur), mais se connecte du smartphone vers le smartphone donc le pc ne reçoit aucune connexion (= ne franchit jamais socketserveur.accept())

    Il faut que tu indique à ton client l'adresse du serveur (pc)


    Je te conseille ces deux tutos pour bien être au clair avec les sockets (car c'est pas évident) :
    http://gfx.developpez.com/tutoriel/java/network/
    http://jmdoudoux.developpez.com/cour...ap-net.php#net

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 5
    Par défaut
    je tiens à vous remercier pour m'avoir répondu
    en fait j'ai modifié mon code et j'ai mis au lieu de getLocalHost la fonction getByName ("içi j'ai mis l'adresse ip du pc") .. mais ça n'a pas marché .. j'ai fait des recherches sur net, j'ai déduit que le probleme peut résider au niveau des ports .. j'ai désactiver l'antivirus et le pare-feu mais aucun résultat ..
    Que pensiez-vous ???

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Est ce que ton application possède la permission internet ? Indispensable pour communiquer sur le réseau.

    Dans ton manifest :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <uses-permission android:name="android.permission.INTERNET" />
    De plus sur Android interdictino de faire des appels réseau sur le thread principale, il faut passer par un thread dédié.

    Plus de détails : http://developer.android.com/trainin...onnecting.html
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre chevronné Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Par défaut
    Ton smartphone et ton pc sont-ils bien sur le même réseau ? Sont-ils atteignables l'un <-> l'autre ? essaye de faire un ping entre les deux.


    Essaye d'avoir un retour du coté du smartphone. Demande lui de t'afficher s'il est bien connecté, si oui à qui.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Log.d(this.getClass().getSimpleName(), "sockect connecte : " + socket.isConnected() + ", à " + socket.getInetAddress());

    Pour connecter ta socket essaye d'utiliser plutôt ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Socket socket = new Socket();
    try{
        socket.connect(new InetSocketAddress(hostIP, port), timeout);
        //ta communication
        socket.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
    Et fixe un timeout, cela te permettra de ne pas bloquer indéfiniment ton appli et d'avoir un retour si la connexion échoue.

Discussions similaires

  1. problème avec des sockets
    Par ddii dans le forum Réseau
    Réponses: 10
    Dernier message: 15/11/2005, 15h53
  2. Réponses: 5
    Dernier message: 19/08/2004, 11h11
  3. [STRUTS] Problème avec des ActionForm
    Par zarbydigital dans le forum Struts 1
    Réponses: 2
    Dernier message: 29/03/2004, 13h49
  4. Problèmes avec des vues
    Par dady dans le forum MFC
    Réponses: 22
    Dernier message: 09/01/2004, 16h26
  5. probleme de gestion de clients avec des sockets....
    Par ludvo dans le forum Réseau
    Réponses: 6
    Dernier message: 25/09/2003, 12h37

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