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 Discussion :

InetAddress et SSID


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 18
    Par défaut InetAddress et SSID
    Bonjour,
    Alors voilà n'ayant pas de trouvé relatif à mon problème je le poste :
    Je dois me connecter depuis mon ordinateur à un wifi d'un ARDrone qui m'envoie des images, je dois donc créer un objet ARDrone que je crée en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ARDrone drone = new ARDrone(InetAddress.getByName("192.168.1.1"));
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ARDrone drone = new ARDrone();
    ce qui revient au même étant donné que ces drones ont par défaut l'adresse 192.168.1.1.

    En parallèle, j'héberge avec ce même programme un serveur sur la connexion ethernet à laquelle je suis relié (qui attribue ses adresses ip avec 192.168.1.x). Ce serveur envoie une image (que je voudrai prendre depuis l'ARDrone) via WebSocket.

    Le problème est que je réussis à faire le transfert d'image via les WebSockets en restant connecté par câble, je réussis à récupérer les images du drone quand je suis connecté que par wifi, par contre quand je combine les deux mon programme ne crée pas bien mon drone (car il prend le 192.168.1.1 de la connection par câble) et je ne reçois donc pas les images de celui-ci, donc impossible de les envoyer via WebSocket.
    Je pensais donc à attribuer un SSID à l'InetAddress pour me connection au "bon" 192.168.1.1, mais je n'ai pas réussi à trouver de solution malgré mes recherches, si vous avez une petite idée je suis preneur ^^

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 18
    Par défaut
    Bon au final après pas mal de réflexion, je me rends compte que Java est un langage trop "haut niveau" pour pouvoir avoir accès au ssid de la connexion internet ... Mais on peut accéder aux interfaces réseau de l'ordinateur (NetworkInterface.getNetworkInterfaces(). Je suis donc en train de voir s'il est possible de "verrouiller" la connexion internet à utiliser dans une classe, mais pas sûr que ce soit évident ... Si vous avez des conseils n'hésitez pas !

  3. #3
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Par défaut
    En fait, il est préférable d'exploiter la méthode getByAddress dans votre cas. En effet, la méthode getByName, lorsqu'elle est utilisée avec l'adresse IP littérale n'est vérifiée qu'au niveau de la viabilité de son format. En d'autre terme, vous pouvez vous amusez à mettre l'adresse IP de votre passerelle par exemple vous n'aurez aucun message d'erreur sauf que votre socket sera connecté à une carte réseau qui n'existe pas...
    En fait, je crois même que dans le cas de deux cartes réseau, quelle que soit l'adresse IP littérale fournie, vous n'aurez en retour que l'InetAddress de la première carte trouvée. Quoi qu'il en soit, comme vous travaillez avec une IP, utilisez plutôt getByAddress.
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 18
    Par défaut
    Merci pour l'information, mais il s'avère qu'au final il est impossible en langage Java de choisir un réseau auquel se connecter ... Java s'occupe juste de chercher la bonne adresse, et il est impossible de lui indiquer une interface via laquelle s'y connecter ...
    Il ne me reste donc plus qu'à paramétrer le drone pour changer son adresse, ou libérer l'adresse 192.168.1.1 sur mon réseau local ...

    Edit : en fait je me suis mal exprimé, avec NetworkInterface il est possible de choisir sur quel réseau diriger ses sockets, sauf que comme j'utilise un objet ARDrone qui m'est donné et qu'il n'est pas possible d'accéder à l'endroit où il utilise les sockets, je ne peux donc pas faire le choix du réseau ...

  5. #5
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Par défaut
    Je suis vraiment surpris en vous lisant :
    il s'avère qu'au final il est impossible en langage Java de choisir un réseau auquel se connecter ...
    Et plus je relis votre post, plus je me pose de questions sur votre configuration réseau, et ce indépendamment de Java.
    En effet, votre PC possède deux cartes réseau, chacune connectées à deux réseau différents mais elles exploitent toutes les deux le même plan d'adresses IP ??? Je n'ai jamais vu ça sauf en cas d'erreur. A moins que vous ayez réalisé un bridge entre vos cartes, et encore, dans ce cas, votre ordinateur ne voit plus qu'une carte qui réunit les deux via un routage interne.

    Donc, comme votre problème m'intéresse je vais faire des vérifications de mon côté pour ce qui concerne votre affirmation.
    Du votre, pourriez-vous m'éclairer sur votre configuration réseau ?
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 18
    Par défaut
    Bonjour,
    Alors en résumé je dois me connecter en wifi à un ARDrone qui a son adresse en 192.168.1.1 et qui m'attribue l'adresse 192.168.1.2, et d'un autre côté je suis relié par éthernet à un routeur qui est relié à internet, ce routeur a pour adresse 192.168.1.1 et m'attribue l'adresse 192.168.1.19.

    Du coup l'adresse 192.168.1.1 est en "double" et Java contacte celle qui répond le plus rapidement possible, et il semble que ce soit le routeur le plus rapide.

    Sachant que comme je l'ai dit dans un précédent poste :
    - Quand j'ai uniquement la connexion ethernet mon serveur est exposé et une image est envoyée par défaut, mais je ne reçois donc plus d'images de l'ARDrone
    - Quand j'ai uniquement la connexion wifi, je reçois les images du drone mais serveur non exposé
    - Quand j'ai les deux connexions mon programme fonctionne comme quand il était branché par éthernet : serveur exposé mais je ne reçois pas les images du drone.

    J'espère que ces informations pourront vous éclairer sur le problème auquel je suis confronté.

Discussions similaires

  1. réseau wifi => SSID
    Par youp_db dans le forum Hardware
    Réponses: 6
    Dernier message: 20/05/2009, 13h20
  2. convertion string InetAddress
    Par id.prog dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 21/05/2008, 00h52
  3. Probleme d'InetAddress - ip dynamique
    Par Faiche dans le forum Langage
    Réponses: 1
    Dernier message: 23/03/2007, 16h46
  4. plusieurs bornes wifi pour un seul ssid
    Par boss_gama dans le forum Hardware
    Réponses: 2
    Dernier message: 12/02/2007, 10h07
  5. [debutant] erreur sur InetAddress.getByAddress()
    Par r0d dans le forum Langage
    Réponses: 3
    Dernier message: 08/02/2007, 16h38

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