Android Client-Server utilisant Sockets – Implémentation du client – Bien choisir son serveur d impression

Dans ce poste client-serveur Android utilisant Sockets, nous nous concentrerons sur la mise en œuvre côté client. Nous avons traité de la mise en œuvre côté serveur dans notre précédent article «Client-serveur Android utilisant des sockets – Mise en œuvre du serveur».

Détails d'implémentation

Dans ce tutoriel, nous utiliserons java Sockets pour réaliser notre communication serveur-client. Dans le client, l’utilisateur remplira l’adresse IP et les détails du port dans EditText, puis appuiera sur se connecter. Le serveur sera rejoué à la requête. Pour l'implémentation du client, nous étendrons AsyncTask . Le socket est créé en utilisant les détails IP et de port et la lecture du serveur est décodée.

[su_button url=”https://github.com/androidsrc/SocketClient” target=”blank” style=”stroked” background=”#51d461″ color=”#ffffff” size=”6″ center=”yes” radius=”0″ icon=”icon: arrow-circle-o-down”]Télécharger le code source complet[/su_button]

Remarque : Ce tutoriel est basé sur Eclipse 4.3, Java 1.6 et Android 4.4.2.

Implémentation client

Implémentation de Client.java

Cette classe contient toute l'implémentation du client. Cette classe est créée en étendant AsyncTask afin que le multitâche sera facile. Nous créons un socket en utilisant l'adresse IP et les détails du port fournis par l'utilisateur. Ensuite, getInputStream () est appelé sur le socket créé pour obtenir InputStream afin de lire les données de ce socket. La connexion est bloquée jusqu'à ce qu'aucune donnée ne soit lue. Tout cela doit être fait dans try catch block afin que les exceptions soient gérées.

package com.androidsrc.client;

importer android.os.AsyncTask;
importer android.widget.TextView;

import java.io.ByteArrayOutputStream;
importer java.io.IOException;
importer java.io.InputStream;
importer java.net.Socket;
importer java.net.UnknownHostException;

Classe publique Client étend AsyncTask {

    String dstAddress;
    int dstPort;
    Réponse de chaîne = "";
    TextView textResponse;

    Client (String addr, int port, TextView textResponse) 
        dstAddress = addr;
        dstPort = port;
        this.textResponse = textResponse;
    

    @Passer outre
    protected Void doInBackground (Void ... arg0) 

        Socket socket = null;

        essayer 
            socket = new Socket (dstAddress, dstPort);

            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream (
                    1024);
            octet[] tampon = nouvel octet[1024];

            int bytesRead;
            InputStream inputStream = socket.getInputStream ();

/ *
             * remarque: inputStream.read () bloquera si aucune donnée n'est renvoyée
* /
            while ((bytesRead = inputStream.read (tampon))!! = -1) 
                byteArrayOutputStream.write (tampon, 0, bytesRead);
                response + = byteArrayOutputStream.toString ("UTF-8");
            

         catch (UnknownHostException e) 
            // TODO Bloc de capture généré automatiquement
            e.printStackTrace ();
            response = "UnknownHostException:" + e.toString ();
         catch (IOException e) 
            // TODO Bloc de capture généré automatiquement
            e.printStackTrace ();
            response = "IOException:" + e.toString ();
         enfin 
            if (socket! = null) 
                essayer 
                    socket.close ();
                 catch (IOException e) 
                    // TODO Bloc de capture généré automatiquement
                    e.printStackTrace ();
                
            
        
        retour réponse;
    

    @Passer outre
    void protected onPostExecute (résultat de void) 
        textResponse.setText (response);
        super.onPostExecute (result);
    

}

Implémentation de la classe MainActivity.java

L'utilisation de la classe client est très simple. Créez simplement un objet de la classe Client et transmettez l’adresse IP et le port du serveur et la réponse TextView. Voici à quoi ressemble MainActivity.java.

package com.androidsrc.client;

importer android.app.Activity;
importer android.os.Bundle;
importer android.view.View;
importer android.view.View.OnClickListener;
importer android.widget.Button;
importer android.widget.EditText;
importer android.widget.TextView;

Classe publique MainActivity étend Activity 

    Réponse TextView;
    EditText editTextAddress, editTextPort;
    Button buttonConnect, buttonClear;

    @Passer outre
    Void protégé onCreate (Bundle savedInstanceState) 
        super.onCreate (savedInstanceState);
        setContentView (R.layout.activity_main);

        editTextAddress = (EditText) findViewById (R.id.addressEditText);
        editTextPort = (EditText) findViewById (R.id.portEditText);
        buttonConnect = (Button) findViewById (R.id.connectButton);
        buttonClear = (Button) findViewById (R.id.clearButton);
        response = (TextView) findViewById (R.id.responseTextView);

        buttonConnect.setOnClickListener (nouveau OnClickListener () 

            @Passer outre
            vide public onClick (Afficher arg0) 
                Client myClient = new Client (editTextAddress.getText ()
                        .toString (), Integer.parseInt (editTextPort
                        .getText (). toString ()), réponse);
                myClient.execute ();
            
        );

        buttonClear.setOnClickListener (nouveau OnClickListener () 

            @Passer outre
            vide public onClick (Afficher v) 
                response.setText ("");
            
        );
    

Autres composants de support

Implémentation du fichier activity_main.xml.



    

    

    

    

AndroidManifest.xml

Nous aurons besoin de la permission INTERNET pour créer des sockets. N'oubliez pas d'inclure cette autorisation dans votre manifeste.




    
    

    
        
            
                

                
            
        
    

Tester l'application

Pour tester cette application, installez-la sur un appareil Android et installez le client sur un autre appareil. Les deux appareils doivent être connectés au même réseau wifi. Ajoutez maintenant une adresse IP et un port au client, puis cliquez sur Connecter. Le serveur rejouera avec un message au client. Merci

Pour toute autre question ou tutoriel personnalisé, veuillez commenter ou nous envoyer un courrier électronique à l'adresse [email protected]

  • Bien choisir son école d'ingénieurs - Céline Manceau - Livre
    Orientation - Occasion - Bon Etat - Les Guides de l'Etudiant - Poche - Structure Coopérative d'insertion à but non lucratif.
  • Bien choisir et préparer son école d'art - Xavier De La Mola - Livre
    Orientation - Occasion - Bon Etat - Poche Studyrama - Poche - Structure Coopérative d'insertion à but non lucratif.
  • Bien choisir son Ecole d'art - Céline Manceau - Livre
    Orientation - Occasion - Bon Etat - Les Guides de l'Etudiant - Poche - Structure Coopérative d'insertion à but non lucratif.
  • Bien choisir son école d'ingénieurs - Sylvie Karsenty - Livre
    Orientation - Occasion - Bon Etat - L'étudiant pratique - Grand Format - Structure Coopérative d'insertion à but non lucratif.
  • Bose quietcomfort 20 android noir
    Écouteurs à réduction de bruit Bose® QuietComfort® 20 pour une sélection d'appareils Samsung et Android   Intra-auriculaires. Réduction de bruit. Meilleur son. Coupez-vous du monde et laissez-vous envahir par la musique, ou bien laissez le monde qui vous entoure venir jusqu'à vous. Vous avez le choix avec les
  • La pêche en mer n°130 : Bien choisir son moulinet pour le buldo - Collectif - Livre
    Pêche - Occasion - Bon Etat - La pêche en mer - Revue - Structure Coopérative d'insertion à but non lucratif.
  • Bien choisir son 3e cycle gestion, commerce, économie - Bruno Magliulo - Livre
    Pratique - Occasion - Bon Etat - Les Guides de l'Etudiant - Poche - Structure Coopérative d'insertion à but non lucratif.
  • Bien choisir son IUP - Alexandre Vanadia - Livre
    Orientation - Occasion - Etat Correct - Livre Biblio BE couvert Etiq. sur couv. - Les Guides de l'Etudiant - Poche - Structure Coopérative d'insertion à but non lucratif.
  • Bien choisir son cours par correspondance - Nicole Lefour - Livre
    Enseignement & Education - Occasion - Bon Etat - Génération GF - Grand Format - Structure Coopérative d'insertion à but non lucratif.
  • Bien choisir son école de commerce - Collectif - Livre
    Orientation - Occasion - Bon Etat - L'étudiant pratique - Grand Format - Structure Coopérative d'insertion à but non lucratif.

Laisser un commentaire