Aller au contenu

[Android] Problème connexion client/serveur


Mali44

Recommended Posts

Bonjour,

J'essaye actuellement de créer une connexion entre un serveur (PC) et une application Android (client). Je voudrais faire en sorte que dans l'application, je puisse vérifier de manière continue si je reçois des messages du serveur (même si l'application est fermée..). Et dès que je reçois un message, je voudrais pouvoir répondre au message en cliquant sur un bouton ou bien automatiquement dès la réception du message. Pour cela, je pense qu'il faut que je créer une classe fille dans mon activité principal avec Asynctask. Cependant, je ne comprend pas trop comment fonctionne Asynctask. JE ne vois pas à quoi correspond la fonction OnPostExecute.  

Voici le code de ma classe fille (qui est appelée par new Client().execute(); dans la fonction onCreate de mon activité principale. 

class Client extends AsyncTask<Void,Void,String>{
        PrintWriter out;
        string res;
        int numPort = 1500;
        //InetAddress ipaddress;
        Socket client;
        BufferedReader in;
          
          
        // methode pour envoyer des données au serveur
        void envoyer(string res) throws IOException{
            this.out.println(res);
        }
         
         
        public String doInBackground(Void...params){        
             try {
                client = new Socket("10.0.2.2", numPort);
                in = new BufferedReader(new InputStreamReader(client.getInputStream()));
                out = new PrintWriter(client.getOutputStream(), true);
                

               //permet de verifier si je reçois un message  
                while( (res=in.readLine()) != null){
                            String time_arbitraire = "test";       
                            envoi(time_arbitraire); 
                 }
                    
                }catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
             return res;
        }
         
        public void onPostExecute(String result){
              
             }
        }
         
    }

Merci d'avance pour votre aide,

Lien vers le commentaire
Partager sur d’autres sites

  • 3 years later...

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...