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

Author: Titanfall —

Short summary: 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 […]

Quick overview

Site
Tutos GameServer
Canonical URL
https://tutos-gameserver.fr/2019/05/03/android-client-server-utilisant-sockets-implementation-du-client-bien-choisir-son-serveur-d-impression/
LLM HTML version
https://tutos-gameserver.fr/2019/05/03/android-client-server-utilisant-sockets-implementation-du-client-bien-choisir-son-serveur-d-impression/llm
LLM JSON version
https://tutos-gameserver.fr/2019/05/03/android-client-server-utilisant-sockets-implementation-du-client-bien-choisir-son-serveur-d-impression/llm.json
Manifest
https://tutos-gameserver.fr/llm-endpoints-manifest.json
Estimated reading time
4 minutes (230 seconds)
Word count
765

Key points

Structured content

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 androidsrcdotnet@gmail.com

Click to rate this post! [Total: 0 Average: 0]

Topics and keywords

Themes: Serveur d'impression

License & attribution

License: CC BY-ND 4.0.

Attribution required: yes.

Manifest: https://tutos-gameserver.fr/llm-endpoints-manifest.json

LLM Endpoints plugin version 1.1.2.