{"version":"1.1","schema_version":"1.1.0","plugin_version":"1.1.2","url":"https://tutos-gameserver.fr/2019/05/03/android-client-server-utilisant-sockets-implementation-du-client-bien-choisir-son-serveur-d-impression/","llm_html_url":"https://tutos-gameserver.fr/2019/05/03/android-client-server-utilisant-sockets-implementation-du-client-bien-choisir-son-serveur-d-impression/llm","llm_json_url":"https://tutos-gameserver.fr/2019/05/03/android-client-server-utilisant-sockets-implementation-du-client-bien-choisir-son-serveur-d-impression/llm.json","manifest_url":"https://tutos-gameserver.fr/llm-endpoints-manifest.json","language":"fr-FR","locale":"fr_FR","title":"Android Client-Server utilisant Sockets &#8211; Implémentation du client\n\n &#8211; Bien choisir son serveur d impression","site":{"name":"Tutos GameServer","url":"https://tutos-gameserver.fr/"},"author":{"id":1,"name":"Titanfall","url":"https://tutos-gameserver.fr/author/titanfall/"},"published_at":"2019-05-03T16:19:04+00:00","modified_at":"2019-05-03T16:19:04+00:00","word_count":765,"reading_time_seconds":230,"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 &#8211; Mise en œuvre du serveur». Détails d&#39;implémentation Dans ce tutoriel, nous utiliserons java Sockets pour réaliser notre communication [&hellip;]","summary_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 &#8211; Mise en œuvre du serveur».","Détails d&#39;implémentation\nDans 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."],"topics":["Serveur d'impression"],"entities":[],"entities_metadata":[{"id":10,"name":"Serveur d'impression","slug":"serveur-dimpression","taxonomy":"category","count":3907,"url":"https://tutos-gameserver.fr/category/serveur-dimpression/"}],"tags":["Serveur d'impression"],"content_hash":"825054604ad5f796429af608ab3dfc91","plain_text":"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 &#8211; Mise en œuvre du serveur».\nDétails d&#39;implémentation\nDans 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&#39;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.\n\n[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]\n\nRemarque : Ce tutoriel est basé sur Eclipse 4.3, Java 1.6 et Android 4.4.2.\nImplémentation client\nImplémentation de Client.java\nCette classe contient toute l&#39;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&#39;adresse IP et les détails du port fournis par l&#39;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&#39;à ce qu&#39;aucune donnée ne soit lue. Tout cela doit être fait dans try catch block afin que les exceptions soient gérées.\npackage com.androidsrc.client;\r\n\r\nimporter android.os.AsyncTask;\r\nimporter android.widget.TextView;\r\n\r\nimport java.io.ByteArrayOutputStream;\r\nimporter java.io.IOException;\r\nimporter java.io.InputStream;\r\nimporter java.net.Socket;\r\nimporter java.net.UnknownHostException;\r\n\r\nClasse publique Client étend AsyncTask {\r\n\r\n    String dstAddress;\r\n    int dstPort;\r\n    Réponse de chaîne = &quot;&quot;;\r\n    TextView textResponse;\r\n\r\n    Client (String addr, int port, TextView textResponse) \r\n        dstAddress = addr;\r\n        dstPort = port;\r\n        this.textResponse = textResponse;\r\n    \r\n\r\n    @Passer outre\r\n    protected Void doInBackground (Void ... arg0) \r\n\r\n        Socket socket = null;\r\n\r\n        essayer \r\n            socket = new Socket (dstAddress, dstPort);\r\n\r\n            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream (\r\n                    1024);\r\n            octet[] tampon = nouvel octet[1024];\r\n\r\n            int bytesRead;\r\n            InputStream inputStream = socket.getInputStream ();\r\n\r\n/ *\r\n             * remarque: inputStream.read () bloquera si aucune donnée n&#39;est renvoyée\r\n* /\r\n            while ((bytesRead = inputStream.read (tampon))!! = -1) \r\n                byteArrayOutputStream.write (tampon, 0, bytesRead);\r\n                response + = byteArrayOutputStream.toString (&quot;UTF-8&quot;);\r\n            \r\n\r\n         catch (UnknownHostException e) \r\n            // TODO Bloc de capture généré automatiquement\r\n            e.printStackTrace ();\r\n            response = &quot;UnknownHostException:&quot; + e.toString ();\r\n         catch (IOException e) \r\n            // TODO Bloc de capture généré automatiquement\r\n            e.printStackTrace ();\r\n            response = &quot;IOException:&quot; + e.toString ();\r\n         enfin \r\n            if (socket! = null) \r\n                essayer \r\n                    socket.close ();\r\n                 catch (IOException e) \r\n                    // TODO Bloc de capture généré automatiquement\r\n                    e.printStackTrace ();\r\n                \r\n            \r\n        \r\n        retour réponse;\r\n    \r\n\r\n    @Passer outre\r\n    void protected onPostExecute (résultat de void) \r\n        textResponse.setText (response);\r\n        super.onPostExecute (result);\r\n    \r\n\r\n}\nImplémentation de la classe MainActivity.java\nL&#39;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.\npackage com.androidsrc.client;\r\n\r\nimporter android.app.Activity;\r\nimporter android.os.Bundle;\r\nimporter android.view.View;\r\nimporter android.view.View.OnClickListener;\r\nimporter android.widget.Button;\r\nimporter android.widget.EditText;\r\nimporter android.widget.TextView;\r\n\r\nClasse publique MainActivity étend Activity \r\n\r\n    Réponse TextView;\r\n    EditText editTextAddress, editTextPort;\r\n    Button buttonConnect, buttonClear;\r\n\r\n    @Passer outre\r\n    Void protégé onCreate (Bundle savedInstanceState) \r\n        super.onCreate (savedInstanceState);\r\n        setContentView (R.layout.activity_main);\r\n\r\n        editTextAddress = (EditText) findViewById (R.id.addressEditText);\r\n        editTextPort = (EditText) findViewById (R.id.portEditText);\r\n        buttonConnect = (Button) findViewById (R.id.connectButton);\r\n        buttonClear = (Button) findViewById (R.id.clearButton);\r\n        response = (TextView) findViewById (R.id.responseTextView);\r\n\r\n        buttonConnect.setOnClickListener (nouveau OnClickListener () \r\n\r\n            @Passer outre\r\n            vide public onClick (Afficher arg0) \r\n                Client myClient = new Client (editTextAddress.getText ()\r\n                        .toString (), Integer.parseInt (editTextPort\r\n                        .getText (). toString ()), réponse);\r\n                myClient.execute ();\r\n            \r\n        );\r\n\r\n        buttonClear.setOnClickListener (nouveau OnClickListener () \r\n\r\n            @Passer outre\r\n            vide public onClick (Afficher v) \r\n                response.setText (&quot;&quot;);\r\n            \r\n        );\r\n    \r\n\nAutres composants de support\nImplémentation du fichier activity_main.xml.\n\r\n\r\n    \r\n\r\n    \r\n\r\n    \r\n\r\n    \r\n\r\n    \r\n\r\n    \r\n\r\n\n  AndroidManifest.xml\nNous aurons besoin de la permission INTERNET pour créer des sockets. N&#39;oubliez pas d&#39;inclure cette autorisation dans votre manifeste.\n\r\n\r\n\r\n    \r\n    \r\n\r\n    \r\n        \r\n            \r\n                \r\n\r\n                \r\n            \r\n        \r\n    \r\n\r\n\nTester l&#39;application\nPour 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\n\nPour toute autre question ou tutoriel personnalisé, veuillez commenter ou nous envoyer un courrier électronique à l&#39;adresse androidsrcdotnet@gmail.com\n\n          \nClick to rate this post!\r\n                                   \r\n                               [Total: 0  Average: 0]","paragraphs":["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 &#8211; Mise en œuvre du serveur».\nDétails d&#39;implémentation\nDans 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&#39;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.\nImplémentation client\nImplémentation de Client.java\nCette classe contient toute l&#39;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&#39;adresse IP et les détails du port fournis par l&#39;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&#39;à ce qu&#39;aucune donnée ne soit lue. Tout cela doit être fait dans try catch block afin que les exceptions soient gérées.\npackage com.androidsrc.client;","importer android.os.AsyncTask;\nimporter android.widget.TextView;","import java.io.ByteArrayOutputStream;\nimporter java.io.IOException;\nimporter java.io.InputStream;\nimporter java.net.Socket;\nimporter java.net.UnknownHostException;","Classe publique Client étend AsyncTask {","    String dstAddress;\n    int dstPort;\n    Réponse de chaîne = &quot;&quot;;\n    TextView textResponse;","    Client (String addr, int port, TextView textResponse) \n        dstAddress = addr;\n        dstPort = port;\n        this.textResponse = textResponse;\n    ","    @Passer outre\n    protected Void doInBackground (Void ... arg0)","        Socket socket = null;","        essayer \n            socket = new Socket (dstAddress, dstPort);","            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream (\n                    1024);\n            octet[] tampon = nouvel octet[1024];","            int bytesRead;\n            InputStream inputStream = socket.getInputStream ();","/ *\n             * remarque: inputStream.read () bloquera si aucune donnée n&#39;est renvoyée\n* /\n            while ((bytesRead = inputStream.read (tampon))!! = -1) \n                byteArrayOutputStream.write (tampon, 0, bytesRead);\n                response + = byteArrayOutputStream.toString (&quot;UTF-8&quot;);\n            ","         catch (UnknownHostException e) \n            // TODO Bloc de capture généré automatiquement\n            e.printStackTrace ();\n            response = &quot;UnknownHostException:&quot; + e.toString ();\n         catch (IOException e) \n            // TODO Bloc de capture généré automatiquement\n            e.printStackTrace ();\n            response = &quot;IOException:&quot; + e.toString ();\n         enfin \n            if (socket! = null) \n                essayer \n                    socket.close ();\n                 catch (IOException e) \n                    // TODO Bloc de capture généré automatiquement\n                    e.printStackTrace ();\n                \n            \n        \n        retour réponse;\n    ","    @Passer outre\n    void protected onPostExecute (résultat de void) \n        textResponse.setText (response);\n        super.onPostExecute (result);\n    ","}\nImplémentation de la classe MainActivity.java\nL&#39;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.\npackage com.androidsrc.client;","importer android.app.Activity;\nimporter android.os.Bundle;\nimporter android.view.View;\nimporter android.view.View.OnClickListener;\nimporter android.widget.Button;\nimporter android.widget.EditText;\nimporter android.widget.TextView;","Classe publique MainActivity étend Activity","    Réponse TextView;\n    EditText editTextAddress, editTextPort;\n    Button buttonConnect, buttonClear;","    @Passer outre\n    Void protégé onCreate (Bundle savedInstanceState) \n        super.onCreate (savedInstanceState);\n        setContentView (R.layout.activity_main);","        editTextAddress = (EditText) findViewById (R.id.addressEditText);\n        editTextPort = (EditText) findViewById (R.id.portEditText);\n        buttonConnect = (Button) findViewById (R.id.connectButton);\n        buttonClear = (Button) findViewById (R.id.clearButton);\n        response = (TextView) findViewById (R.id.responseTextView);","        buttonConnect.setOnClickListener (nouveau OnClickListener ()","            @Passer outre\n            vide public onClick (Afficher arg0) \n                Client myClient = new Client (editTextAddress.getText ()\n                        .toString (), Integer.parseInt (editTextPort\n                        .getText (). toString ()), réponse);\n                myClient.execute ();\n            \n        );","        buttonClear.setOnClickListener (nouveau OnClickListener ()","            @Passer outre\n            vide public onClick (Afficher v) \n                response.setText (&quot;&quot;);\n            \n        );\n    ","Autres composants de support\nImplémentation du fichier activity_main.xml.","AndroidManifest.xml\nNous aurons besoin de la permission INTERNET pour créer des sockets. N&#39;oubliez pas d&#39;inclure cette autorisation dans votre manifeste.","Tester l&#39;application\nPour 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&#39;adresse androidsrcdotnet@gmail.com","Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"],"content_blocks":[{"id":"text-1","type":"text","heading":"","plain_text":"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 &#8211; Mise en œuvre du serveur».\nDétails d&#39;implémentation\nDans 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&#39;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.","html":"<p>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 &#8211; Mise en œuvre du serveur».\nDétails d&#039;implémentation\nDans 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&#039;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.</p>"},{"id":"text-2","type":"text","heading":"","plain_text":"[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]","html":"<p>[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]</p>"},{"id":"text-3","type":"text","heading":"","plain_text":"Remarque : Ce tutoriel est basé sur Eclipse 4.3, Java 1.6 et Android 4.4.2.\nImplémentation client\nImplémentation de Client.java\nCette classe contient toute l&#39;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&#39;adresse IP et les détails du port fournis par l&#39;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&#39;à ce qu&#39;aucune donnée ne soit lue. Tout cela doit être fait dans try catch block afin que les exceptions soient gérées.\npackage com.androidsrc.client;","html":"<p>Remarque : Ce tutoriel est basé sur Eclipse 4.3, Java 1.6 et Android 4.4.2.\nImplémentation client\nImplémentation de Client.java\nCette classe contient toute l&#039;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&#039;adresse IP et les détails du port fournis par l&#039;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&#039;à ce qu&#039;aucune donnée ne soit lue. Tout cela doit être fait dans try catch block afin que les exceptions soient gérées.\npackage com.androidsrc.client;</p>"},{"id":"text-4","type":"text","heading":"","plain_text":"importer android.os.AsyncTask;\nimporter android.widget.TextView;","html":"<p>importer android.os.AsyncTask;\nimporter android.widget.TextView;</p>"},{"id":"text-5","type":"text","heading":"","plain_text":"import java.io.ByteArrayOutputStream;\nimporter java.io.IOException;\nimporter java.io.InputStream;\nimporter java.net.Socket;\nimporter java.net.UnknownHostException;","html":"<p>import java.io.ByteArrayOutputStream;\nimporter java.io.IOException;\nimporter java.io.InputStream;\nimporter java.net.Socket;\nimporter java.net.UnknownHostException;</p>"},{"id":"text-6","type":"text","heading":"","plain_text":"Classe publique Client étend AsyncTask {","html":"<p>Classe publique Client étend AsyncTask {</p>"},{"id":"text-7","type":"text","heading":"","plain_text":"    String dstAddress;\n    int dstPort;\n    Réponse de chaîne = &quot;&quot;;\n    TextView textResponse;","html":"<p>    String dstAddress;\n    int dstPort;\n    Réponse de chaîne = &quot;&quot;;\n    TextView textResponse;</p>"},{"id":"text-8","type":"text","heading":"","plain_text":"    Client (String addr, int port, TextView textResponse) \n        dstAddress = addr;\n        dstPort = port;\n        this.textResponse = textResponse;\n    ","html":"<p>    Client (String addr, int port, TextView textResponse) \n        dstAddress = addr;\n        dstPort = port;\n        this.textResponse = textResponse;\n    </p>"},{"id":"text-9","type":"text","heading":"","plain_text":"    @Passer outre\n    protected Void doInBackground (Void ... arg0)","html":"<p>    @Passer outre\n    protected Void doInBackground (Void ... arg0)</p>"},{"id":"text-10","type":"text","heading":"","plain_text":"        Socket socket = null;","html":"<p>        Socket socket = null;</p>"},{"id":"text-11","type":"text","heading":"","plain_text":"        essayer \n            socket = new Socket (dstAddress, dstPort);","html":"<p>        essayer \n            socket = new Socket (dstAddress, dstPort);</p>"},{"id":"text-12","type":"text","heading":"","plain_text":"            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream (\n                    1024);\n            octet[] tampon = nouvel octet[1024];","html":"<p>            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream (\n                    1024);\n            octet[] tampon = nouvel octet[1024];</p>"},{"id":"text-13","type":"text","heading":"","plain_text":"            int bytesRead;\n            InputStream inputStream = socket.getInputStream ();","html":"<p>            int bytesRead;\n            InputStream inputStream = socket.getInputStream ();</p>"},{"id":"text-14","type":"text","heading":"","plain_text":"/ *\n             * remarque: inputStream.read () bloquera si aucune donnée n&#39;est renvoyée\n* /\n            while ((bytesRead = inputStream.read (tampon))!! = -1) \n                byteArrayOutputStream.write (tampon, 0, bytesRead);\n                response + = byteArrayOutputStream.toString (&quot;UTF-8&quot;);\n            ","html":"<p>/ *\n             * remarque: inputStream.read () bloquera si aucune donnée n&#039;est renvoyée\n* /\n            while ((bytesRead = inputStream.read (tampon))!! = -1) \n                byteArrayOutputStream.write (tampon, 0, bytesRead);\n                response + = byteArrayOutputStream.toString (&quot;UTF-8&quot;);\n            </p>"},{"id":"text-15","type":"text","heading":"","plain_text":"         catch (UnknownHostException e) \n            // TODO Bloc de capture généré automatiquement\n            e.printStackTrace ();\n            response = &quot;UnknownHostException:&quot; + e.toString ();\n         catch (IOException e) \n            // TODO Bloc de capture généré automatiquement\n            e.printStackTrace ();\n            response = &quot;IOException:&quot; + e.toString ();\n         enfin \n            if (socket! = null) \n                essayer \n                    socket.close ();\n                 catch (IOException e) \n                    // TODO Bloc de capture généré automatiquement\n                    e.printStackTrace ();\n                \n            \n        \n        retour réponse;\n    ","html":"<p>         catch (UnknownHostException e) \n            // TODO Bloc de capture généré automatiquement\n            e.printStackTrace ();\n            response = &quot;UnknownHostException:&quot; + e.toString ();\n         catch (IOException e) \n            // TODO Bloc de capture généré automatiquement\n            e.printStackTrace ();\n            response = &quot;IOException:&quot; + e.toString ();\n         enfin \n            if (socket! = null) \n                essayer \n                    socket.close ();\n                 catch (IOException e) \n                    // TODO Bloc de capture généré automatiquement\n                    e.printStackTrace ();\n                \n            \n        \n        retour réponse;\n    </p>"},{"id":"text-16","type":"text","heading":"","plain_text":"    @Passer outre\n    void protected onPostExecute (résultat de void) \n        textResponse.setText (response);\n        super.onPostExecute (result);\n    ","html":"<p>    @Passer outre\n    void protected onPostExecute (résultat de void) \n        textResponse.setText (response);\n        super.onPostExecute (result);\n    </p>"},{"id":"text-17","type":"text","heading":"","plain_text":"}\nImplémentation de la classe MainActivity.java\nL&#39;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.\npackage com.androidsrc.client;","html":"<p>}\nImplémentation de la classe MainActivity.java\nL&#039;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.\npackage com.androidsrc.client;</p>"},{"id":"text-18","type":"text","heading":"","plain_text":"importer android.app.Activity;\nimporter android.os.Bundle;\nimporter android.view.View;\nimporter android.view.View.OnClickListener;\nimporter android.widget.Button;\nimporter android.widget.EditText;\nimporter android.widget.TextView;","html":"<p>importer android.app.Activity;\nimporter android.os.Bundle;\nimporter android.view.View;\nimporter android.view.View.OnClickListener;\nimporter android.widget.Button;\nimporter android.widget.EditText;\nimporter android.widget.TextView;</p>"},{"id":"text-19","type":"text","heading":"","plain_text":"Classe publique MainActivity étend Activity","html":"<p>Classe publique MainActivity étend Activity</p>"},{"id":"text-20","type":"text","heading":"","plain_text":"    Réponse TextView;\n    EditText editTextAddress, editTextPort;\n    Button buttonConnect, buttonClear;","html":"<p>    Réponse TextView;\n    EditText editTextAddress, editTextPort;\n    Button buttonConnect, buttonClear;</p>"},{"id":"text-21","type":"text","heading":"","plain_text":"    @Passer outre\n    Void protégé onCreate (Bundle savedInstanceState) \n        super.onCreate (savedInstanceState);\n        setContentView (R.layout.activity_main);","html":"<p>    @Passer outre\n    Void protégé onCreate (Bundle savedInstanceState) \n        super.onCreate (savedInstanceState);\n        setContentView (R.layout.activity_main);</p>"},{"id":"text-22","type":"text","heading":"","plain_text":"        editTextAddress = (EditText) findViewById (R.id.addressEditText);\n        editTextPort = (EditText) findViewById (R.id.portEditText);\n        buttonConnect = (Button) findViewById (R.id.connectButton);\n        buttonClear = (Button) findViewById (R.id.clearButton);\n        response = (TextView) findViewById (R.id.responseTextView);","html":"<p>        editTextAddress = (EditText) findViewById (R.id.addressEditText);\n        editTextPort = (EditText) findViewById (R.id.portEditText);\n        buttonConnect = (Button) findViewById (R.id.connectButton);\n        buttonClear = (Button) findViewById (R.id.clearButton);\n        response = (TextView) findViewById (R.id.responseTextView);</p>"},{"id":"text-23","type":"text","heading":"","plain_text":"        buttonConnect.setOnClickListener (nouveau OnClickListener ()","html":"<p>        buttonConnect.setOnClickListener (nouveau OnClickListener ()</p>"},{"id":"text-24","type":"text","heading":"","plain_text":"            @Passer outre\n            vide public onClick (Afficher arg0) \n                Client myClient = new Client (editTextAddress.getText ()\n                        .toString (), Integer.parseInt (editTextPort\n                        .getText (). toString ()), réponse);\n                myClient.execute ();\n            \n        );","html":"<p>            @Passer outre\n            vide public onClick (Afficher arg0) \n                Client myClient = new Client (editTextAddress.getText ()\n                        .toString (), Integer.parseInt (editTextPort\n                        .getText (). toString ()), réponse);\n                myClient.execute ();\n            \n        );</p>"},{"id":"text-25","type":"text","heading":"","plain_text":"        buttonClear.setOnClickListener (nouveau OnClickListener ()","html":"<p>        buttonClear.setOnClickListener (nouveau OnClickListener ()</p>"},{"id":"text-26","type":"text","heading":"","plain_text":"            @Passer outre\n            vide public onClick (Afficher v) \n                response.setText (&quot;&quot;);\n            \n        );\n    ","html":"<p>            @Passer outre\n            vide public onClick (Afficher v) \n                response.setText (&quot;&quot;);\n            \n        );\n    </p>"},{"id":"text-27","type":"text","heading":"","plain_text":"Autres composants de support\nImplémentation du fichier activity_main.xml.","html":"<p>Autres composants de support\nImplémentation du fichier activity_main.xml.</p>"},{"id":"text-28","type":"text","heading":"","plain_text":"AndroidManifest.xml\nNous aurons besoin de la permission INTERNET pour créer des sockets. N&#39;oubliez pas d&#39;inclure cette autorisation dans votre manifeste.","html":"<p>AndroidManifest.xml\nNous aurons besoin de la permission INTERNET pour créer des sockets. N&#039;oubliez pas d&#039;inclure cette autorisation dans votre manifeste.</p>"},{"id":"text-29","type":"text","heading":"","plain_text":"Tester l&#39;application\nPour 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","html":"<p>Tester l&#039;application\nPour 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</p>"},{"id":"text-30","type":"text","heading":"","plain_text":"Pour toute autre question ou tutoriel personnalisé, veuillez commenter ou nous envoyer un courrier électronique à l&#39;adresse androidsrcdotnet@gmail.com","html":"<p>Pour toute autre question ou tutoriel personnalisé, veuillez commenter ou nous envoyer un courrier électronique à l&#039;adresse androidsrcdotnet@gmail.com</p>"},{"id":"text-31","type":"text","heading":"","plain_text":"Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]","html":"<p>Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]</p>"}],"sections":[{"id":"text-1","heading":"Text","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 &#8211; Mise en œuvre du serveur».\nDétails d&#39;implémentation\nDans 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&#39;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."},{"id":"text-2","heading":"Text","content":"[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]"},{"id":"text-3","heading":"Text","content":"Remarque : Ce tutoriel est basé sur Eclipse 4.3, Java 1.6 et Android 4.4.2.\nImplémentation client\nImplémentation de Client.java\nCette classe contient toute l&#39;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&#39;adresse IP et les détails du port fournis par l&#39;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&#39;à ce qu&#39;aucune donnée ne soit lue. Tout cela doit être fait dans try catch block afin que les exceptions soient gérées.\npackage com.androidsrc.client;"},{"id":"text-4","heading":"Text","content":"importer android.os.AsyncTask;\nimporter android.widget.TextView;"},{"id":"text-5","heading":"Text","content":"import java.io.ByteArrayOutputStream;\nimporter java.io.IOException;\nimporter java.io.InputStream;\nimporter java.net.Socket;\nimporter java.net.UnknownHostException;"},{"id":"text-6","heading":"Text","content":"Classe publique Client étend AsyncTask {"},{"id":"text-7","heading":"Text","content":"    String dstAddress;\n    int dstPort;\n    Réponse de chaîne = &quot;&quot;;\n    TextView textResponse;"},{"id":"text-8","heading":"Text","content":"    Client (String addr, int port, TextView textResponse) \n        dstAddress = addr;\n        dstPort = port;\n        this.textResponse = textResponse;\n    "},{"id":"text-9","heading":"Text","content":"    @Passer outre\n    protected Void doInBackground (Void ... arg0)"},{"id":"text-10","heading":"Text","content":"        Socket socket = null;"},{"id":"text-11","heading":"Text","content":"        essayer \n            socket = new Socket (dstAddress, dstPort);"},{"id":"text-12","heading":"Text","content":"            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream (\n                    1024);\n            octet[] tampon = nouvel octet[1024];"},{"id":"text-13","heading":"Text","content":"            int bytesRead;\n            InputStream inputStream = socket.getInputStream ();"},{"id":"text-14","heading":"Text","content":"/ *\n             * remarque: inputStream.read () bloquera si aucune donnée n&#39;est renvoyée\n* /\n            while ((bytesRead = inputStream.read (tampon))!! = -1) \n                byteArrayOutputStream.write (tampon, 0, bytesRead);\n                response + = byteArrayOutputStream.toString (&quot;UTF-8&quot;);\n            "},{"id":"text-15","heading":"Text","content":"         catch (UnknownHostException e) \n            // TODO Bloc de capture généré automatiquement\n            e.printStackTrace ();\n            response = &quot;UnknownHostException:&quot; + e.toString ();\n         catch (IOException e) \n            // TODO Bloc de capture généré automatiquement\n            e.printStackTrace ();\n            response = &quot;IOException:&quot; + e.toString ();\n         enfin \n            if (socket! = null) \n                essayer \n                    socket.close ();\n                 catch (IOException e) \n                    // TODO Bloc de capture généré automatiquement\n                    e.printStackTrace ();\n                \n            \n        \n        retour réponse;\n    "},{"id":"text-16","heading":"Text","content":"    @Passer outre\n    void protected onPostExecute (résultat de void) \n        textResponse.setText (response);\n        super.onPostExecute (result);\n    "},{"id":"text-17","heading":"Text","content":"}\nImplémentation de la classe MainActivity.java\nL&#39;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.\npackage com.androidsrc.client;"},{"id":"text-18","heading":"Text","content":"importer android.app.Activity;\nimporter android.os.Bundle;\nimporter android.view.View;\nimporter android.view.View.OnClickListener;\nimporter android.widget.Button;\nimporter android.widget.EditText;\nimporter android.widget.TextView;"},{"id":"text-19","heading":"Text","content":"Classe publique MainActivity étend Activity"},{"id":"text-20","heading":"Text","content":"    Réponse TextView;\n    EditText editTextAddress, editTextPort;\n    Button buttonConnect, buttonClear;"},{"id":"text-21","heading":"Text","content":"    @Passer outre\n    Void protégé onCreate (Bundle savedInstanceState) \n        super.onCreate (savedInstanceState);\n        setContentView (R.layout.activity_main);"},{"id":"text-22","heading":"Text","content":"        editTextAddress = (EditText) findViewById (R.id.addressEditText);\n        editTextPort = (EditText) findViewById (R.id.portEditText);\n        buttonConnect = (Button) findViewById (R.id.connectButton);\n        buttonClear = (Button) findViewById (R.id.clearButton);\n        response = (TextView) findViewById (R.id.responseTextView);"},{"id":"text-23","heading":"Text","content":"        buttonConnect.setOnClickListener (nouveau OnClickListener ()"},{"id":"text-24","heading":"Text","content":"            @Passer outre\n            vide public onClick (Afficher arg0) \n                Client myClient = new Client (editTextAddress.getText ()\n                        .toString (), Integer.parseInt (editTextPort\n                        .getText (). toString ()), réponse);\n                myClient.execute ();\n            \n        );"},{"id":"text-25","heading":"Text","content":"        buttonClear.setOnClickListener (nouveau OnClickListener ()"},{"id":"text-26","heading":"Text","content":"            @Passer outre\n            vide public onClick (Afficher v) \n                response.setText (&quot;&quot;);\n            \n        );\n    "},{"id":"text-27","heading":"Text","content":"Autres composants de support\nImplémentation du fichier activity_main.xml."},{"id":"text-28","heading":"Text","content":"AndroidManifest.xml\nNous aurons besoin de la permission INTERNET pour créer des sockets. N&#39;oubliez pas d&#39;inclure cette autorisation dans votre manifeste."},{"id":"text-29","heading":"Text","content":"Tester l&#39;application\nPour 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"},{"id":"text-30","heading":"Text","content":"Pour toute autre question ou tutoriel personnalisé, veuillez commenter ou nous envoyer un courrier électronique à l&#39;adresse androidsrcdotnet@gmail.com"},{"id":"text-31","heading":"Text","content":"Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"}],"media":{"primary_image":""},"relations":[{"rel":"canonical","href":"https://tutos-gameserver.fr/2019/05/03/android-client-server-utilisant-sockets-implementation-du-client-bien-choisir-son-serveur-d-impression/"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2019/05/03/android-client-server-utilisant-sockets-implementation-du-client-bien-choisir-son-serveur-d-impression/llm","type":"text/html"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2019/05/03/android-client-server-utilisant-sockets-implementation-du-client-bien-choisir-son-serveur-d-impression/llm.json","type":"application/json"},{"rel":"llm-manifest","href":"https://tutos-gameserver.fr/llm-endpoints-manifest.json","type":"application/json"}],"http_headers":{"X-LLM-Friendly":"1","X-LLM-Schema":"1.1.0","Content-Security-Policy":"default-src 'none'; img-src * data:; style-src 'unsafe-inline'"},"license":"CC BY-ND 4.0","attribution_required":true,"allow_cors":false}