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

Android Discussion :

Envoi d'un "A" sur 192.168.0.151:23


Sujet :

Android

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Alimentation

    Informations forums :
    Inscription : Avril 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Envoi d'un "A" sur 192.168.0.151:23
    Bonjour, j'aimerais envoyer un caractère "A" quand j'appuie sur un bouton à l'adresse 192.168.0.151 du port 23.
    Je dispose d'une Galaxy Tab 2 sous Jelly Bean.
    SDK éclipse sous windows

    Pourriez-vous m'envoyer un code source sous éclipse afin que je puisse continuer mon projet ?
    Merci d'avance, cordialement. =)

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Commence par nous faire voir ce que tu as fait et l'endroit qui bloque.
    Nous ne sommes pas là pour faire ton travail

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Alimentation

    Informations forums :
    Inscription : Avril 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour, merci pour votre réponse rapide.

    C'est un projet Bac STI2D qui consiste à commander une lampe de chevet à partir de notre tablette.
    Nous avons réalisé : le variateur commandé en MLI, le microcontroleur arduino+carte shield réseau qui commande ce varia, tout cela fonctionne bien.
    Nous nous sommes servi de App inventor pour faire cette application Android de base qui consiste à envoyer un "A" "Z" "E" ... suivant l'intensité lumineuse que veut le client.
    Et là problème, app inventor n'envoi pas qu'un caractère mais une énorme trame qui se termine par "A" (ou autre), pas de possibilité de modifier, c'est dommage.
    Notre gentil professeur nous a alors obligé d'utiliser l'artillerie lourde (SDK eclipse), nous sommes un peu submergé par l'interface.

    Nous aimerions un exemple code source; Un bouton quand on appui dessus cela envoi "A" en 192.168.0.151:23 .

    Si on comprend ça, on terminera pour les autres boutons, voir surtout mettre un Slide (curseur) qui enverra les caracteres suivant sa valeur.

    Ce n'est qu'une partie de notre projet (à finir rapidement).

    Cordialement

  4. #4
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Salut,

    Tu peux regarder du côté de JAVA sur comment marche les socket . il doit y avoir d'autres tutos.

    http://humbert-florent.developpez.co...reseau/avance/

    Après sous Android on ne travaille pas sur les Socket depuis l'UIThread, donc pensez à bien créer un Thread pour vos communications.

  5. #5
    Membre éclairé
    Avatar de LeBzul
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 381
    Points : 832
    Points
    832
    Par défaut
    Salut,
    Il existe une librarie qui simplifie pas mal l'utilisation des sockets sous android, kryonet.
    https://github.com/EsotericSoftware/kryonet

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Points : 5
    Points
    5
    Par défaut combativité
    Projet nouveau:

    Dans le graphical layout tu mets un textView qui s'appelle textView2
    2 buttons: button1 et button2 dans leurs properties en face de 'Onclick' tu mets 'ChangeText' pour l'un et 'ChangeText2' pour l'autre (Onclick trouvable par ordre alpha a->z)


    Dans le MainActivity.java avant la dernière accolade, tu mets ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public void ChangeText(View view)
      {
    	  TextView textview = (TextView)findViewById(R.id.textView2);
    	  textview.setText("ça marche");
      }
      public void ChangeText2(View view)
      {
    	  TextView textview = (TextView)findViewById(R.id.textView2);
    	  textview.setText("on est content");
      }
    Ensuite il faudra incorporer ça (mais non testé car je n'ai pas que ça a faire de m'occuper de mes élèves pendant mes vacances... mais tient moi au courant par contre)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Socket s = new Socket("192.168.0.151", 23);
     
    		String g = "A";
     
    		OutputStream oStream = s.getOutputStream();
    		oStream.write(g.getBytes());

    Vu dans le tuto Java réseau... à tester avec un PC en hyperterminal en 192.168.0.151:23 et une tablette.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Juste après avoir incorporé le code {public.....on est content } dans ton MainActivity.java tu peux tester.
    Chaque bouton font leur effet sur le text, c'est une bonne chose.

    Perso j'ai lutté car dans le findViewById(R.id.textView2) le textView2 restait en noir souligné rouge (=faute), jusqu'au moment où en réécrivant R.Id une fenêtre magique s’ouvrit et parmi les choix se trouvait R.Id.TextView2 , le TextView devint alors bleu, le programme fonctionna et les oiseaux chantèrent.

    D’ailleurs c'est étonnant comme erreur, n'y aurait-il pas un bouton secret eclipse, genre 'tient compte du layout avant de souligner en rouge ?'
    Merci

    On peut (tu devrais) peaufiner en virant les buttons et utiliser une Seekbar.

    Après reste le réseau...

  8. #8
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Citation Envoyé par Taurus123
    Perso j'ai lutté car dans le findViewById(R.id.textView2) le textView2 restait en noir souligné rouge (=faute), jusqu'au moment où en réécrivant R.Id une fenêtre magique s’ouvrit et parmi les choix se trouvait R.Id.TextView2 , le TextView devint alors bleu, le programme fonctionna et les oiseaux chantèrent.

    D’ailleurs c'est étonnant comme erreur, n'y aurait-il pas un bouton secret eclipse, genre 'tient compte du layout avant de souligner en rouge ?'
    Merci
    S'il n'y a pas d'erreur dans la casse, c'est normal. La première fois, c'est R.id.textView2 qui est demandé. La seconde fois, c'est R.id.TextView2 qui est complété. Ainsi, dans le fichier XML lié, l'ID du TextView doit être déclarée comme android:id="@+id/TextView2". Java étant sensible à la casse, il ne résolvait pas la première association, celle-ci n'existant pas.
    A noter que, selon les conventions Java, c'est la première casse qui est valide et qui devrait être utilisée.

    Pour aller plus loin, je conseillerai aussi de ne surtout pas nommer ces variables variable1, variable2, ..., variableN, c'est un très bon moyen de se perdre, et ça rend la relecture du code très compliqué.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Correction
    Bonjour, dans mon post j'ai fait une erreur de Casse mais pas dans Eclipse, toutes mes confuses.

    Si j'écris directement mon code,' textView1 ' restera souligné rouge (=faute), par contre si après avoir posé mes éléments sur le Layout je fais un RUN, c'est bon il le calcul.

    Le mieux étant de renommer les Id des éléments ( Edit ID ) là, il le prend forcement.

    J'essaye de trouver des recettes, je suis trop débutant sur Eclipse pour en tirer des théorèmes.

    Merci

  10. #10
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    La dernière fois que j'ai utilisé Eclipse, il compilait les layout uniquement à la demande (pas en continu). De fait, il ne faisait les liens avec les ID rajoutés depuis la dernière génération de code uniquement au moment d'une compilation, faisant quelques faux positif le temps de lancer une autre compil'.

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Points : 5
    Points
    5
    Par défaut application qui se ferme au lieu d'envoyer mon 'A' ???
    Bonjour, nouveau problème:

    j'ai mis ce code dans une nouvelle Class 'client' qui se fait appeler lors d'un Onclick sur un Button2.
    J'ai activer la permission INTERNET dans le Android manifest.xml.
    Sur mon réseau, un PC en 192.168.0.151:23 attend la communication.

    Quand je click sur Button1, un "hello" s'affiche sur un Textview. Une action sur Button1 est positive, c'est rassurant.
    Par contre une action sur Button2 me fait fermer l'application "newbutton a cesser de fonctionner OK"

    Voici mon code, je ne comprends pas pourquoi mon appli plante, pourriez vous me donner une piste SVP ?


    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
     
    package com.example.newbutton;
     
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetAddress;
    import java.io.*;
    import java.net.*;
     
    public class client {		 
    		public static void main(String args[]) throws IOException{	 
    		Socket service = new Socket("192.168.0.151",23);	 
    		BufferedWriter out = new BufferedWriter( new OutputStreamWriter(service.getOutputStream()));
    		out.write("A");
    		out.flush();
    	 service.close();
     
    		} 
    	}

Discussions similaires

  1. [Quote] DVP quoté sur Bashfr
    Par Skyounet dans le forum La taverne du Club : Humour et divers
    Réponses: 16
    Dernier message: 26/09/2006, 19h52

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