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
- 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.
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.