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 :

[Tutoriel] Android et le broadcast UDP appliqué à la détection d'un serveur en réseau Wi-Fi local


Sujet :

API standards et tierces Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de Viish
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2009
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 427
    Par défaut [Tutoriel] Android et le broadcast UDP appliqué à la détection d'un serveur en réseau Wi-Fi local
    Bonjour,

    Pour alimenter la page des cours et tutoriels pour apprendre la programmation Android, voici un nouveau tutoriel expliquant comment se servir du broadcast UDP sous Android pour trouver automatiquement l'adresse IP d'un serveur sur le même réseau Wi-Fi local.

    Merci de poster vos remarques ou question à la suite.

  2. #2
    Membre Expert
    Avatar de MathiasSeguy
    Homme Profil pro
    Fondateur Android2EE - Formation Expertise Android
    Inscrit en
    Avril 2011
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fondateur Android2EE - Formation Expertise Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 185
    Billets dans le blog
    6
    Par défaut
    Bonjour,
    Super article, j'en ai les yeux qui brillent tellement c'est beau.
    Juste une question toute bête, le code serveur je le déploie où et sur quoi ? Je fais un war et c'est fini?

  3. #3
    Rédacteur
    Avatar de Viish
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2009
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 427
    Par défaut
    Bonjour,

    Ravi que tu ai apprécié.
    Pour le code serveur, celui que je donne est un code serveur pour application Android, pour le cas ou l'on fait une application voulant dialoguer avec une autre instance d'elle même sous la forme d'un échange client serveur.
    Après pour un serveur "classique", le principe est le même, bien que l'API puisse changer. Il suffit de créer une socket serveur en UDP.

    Bonne continuation.

  4. #4
    Membre Expert
    Avatar de MathiasSeguy
    Homme Profil pro
    Fondateur Android2EE - Formation Expertise Android
    Inscrit en
    Avril 2011
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fondateur Android2EE - Formation Expertise Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 185
    Billets dans le blog
    6
    Par défaut
    Fichtre dis donc, j'avais pas compris.
    Ca veut dire que le code serveur je le colle dans mon application Android dans sa partie serveur et ça marche tout seul?
    J'ai pas besoin de demander des permissions, ni de mettre ce code dans un service, comment ton code est appelé ? Ton application "serveur" tourne en permanence? Aurais-tu un cas d'utilisation?

  5. #5
    Rédacteur
    Avatar de Viish
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2009
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 427
    Par défaut
    Imagines 2 boutons dans une Activity, un nommé "Serveur" et l'autre "Client".
    Si tu cliques sur serveur, il crée un objet Discovery (le nom de ma classe), et appelles "waitingForDiscover()".
    Le bouton "client" lui crée une instance de Discovery et ensuite appelles getServerIp(). Si le retour de la fonction est null, alors aucun serveur n'a été trouvé, sinon elle renvoie l'IP du serveur, et ce dernier a arrêté son serveur UDP entre temps.

  6. #6
    Membre Expert
    Avatar de MathiasSeguy
    Homme Profil pro
    Fondateur Android2EE - Formation Expertise Android
    Inscrit en
    Avril 2011
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fondateur Android2EE - Formation Expertise Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 185
    Billets dans le blog
    6
    Par défaut
    Et ensuite je parle entre eux en utilisant le protocole TCP ou UDP comme je veux.
    Magique.
    Je pense que tu pourrais rajouter ton dernier post dans un paragraphe exemple d'utilisation dans ton article, cela éclairerait pas mal de monde.
    En tout cas super.
    merci pour ton article

  7. #7
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2005
    Messages : 64
    Par défaut
    Bonjour,

    Etant en stage, je dois créer une application sur smartphone permettant d'envoyer des jpeg à un mobile embarqué.
    Ma contrainte est que la communication doit se faire via le wifi en udp par un réseau, je suis donc tombé sur ton code (qui est très bien), néanmoins qu'en je l'utilise tel quel, mon application plante juste avant le "socket.send(packet);".
    Via le module ddms, j'ai récupéré quelque infos entre autres :
    07-12 14:54:10.360: INFO/System.out(5757): paddr 192.168.10.97 gateway 192.168.10.200 netmask 255.255.255.0 dns1 192.168.10.200 dns2 0.0.0.0 DHCP server 192.168.10.200 lease 7200 seconds
    J'obtiens comme erreur :
    07-12 14:54:10.360: DEBUG/ERROR(5757): Verify your Wifi connection
    Ce qui implique que mon réseau n'est pas joignable.

    Et après plusieurs débogage, je ne vois pas ce qui pourrait merder.
    Je développe sous un Xpéria version 2.1-update (API 7) sans carte sim, je peux me connecter manuellement avec le wifi au réseau local de l'entreprise.
    Je précise aussi que je suis débutant sous android...

    Merci pour votre aide,
    Cordialement

  8. #8
    Rédacteur
    Avatar de Viish
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2009
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 427
    Par défaut
    Vérifie qu'au moment d’exécuter ton appli tu sois bien connecté au WiFi, et si c'est pas ça que dans ton fichier Manifest.xml tu demandes bien la permission Internet.

  9. #9
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2005
    Messages : 64
    Par défaut
    Pour ce qui est du manifest internet est bien présent mais effectivement je pensais qu'il suffisait d'activer le wifi et non d'y être connecté (je ne sais pas pourquoi j'ai compris ça).

    Merci en tout, j'ai encore des erreurs mais je regarderai ça demain ^^.

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4
    Par défaut
    Hello !

    Je voulais utiliser (ou au moins tester) cette classe pour un projet que j'ai pour les cours, mais je n'arrive pas à savoir à quelle classe fait référence cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String myAdress = Engine.getIpAddress();
    Ou se trouve la classe Engine ? Eclipse me propose deux import, mais il ne me semble pas correspondre à ce que je cherche (un pour les Wallpaper et l'autre pour le TextToSpeech ...).

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4
    Par défaut
    Finalement j'ai définit ma propre méthode getIpAddress() grâce à ce lien. Il faut juste penser à ajouter la permission android.permission.INTERNET à votre manifeste.

Discussions similaires

  1. Les futurs tutoriels Android sur DVP ?
    Par Feanorin dans le forum Android
    Réponses: 63
    Dernier message: 18/01/2015, 13h12
  2. [RESOLUT]Broadcast UDP sur le réseau
    Par Vermouth dans le forum Linux
    Réponses: 2
    Dernier message: 02/07/2010, 20h46

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