Aller au contenu

[Android/Reseaux TCC/Ip] Problème reception


Drakilster

Recommended Posts

Bonjour,Voila je viens a vous car je ne sais plus ou allez pour m'aider sur mon application android.

J'ai un problème j'ai tous essayais pour avoir une reception continue de mon application android.Je m'explique :

L'application ce connecte envoie un message tous va bien après j'utilise un code pour réceptionner mais sa bugs j'ai essayer le runnable et plien d'autre chose impossible de'arrivé a quelque chose voici mon code de réception sans le runnable car même avec il m'exécute rien quand je demande de lire ou autre les donnée il plante

bref voici le code :

public void ReceptionMessage(){
while(true){

byte[] buffer = new byte[1024];
	  int readBytes;
   try {
 readBytes = s.getInputStream().read(buffer, 0, 1024);
 RcptDonnee = new String(buffer, 0, readBytes, "UTF-8");
   } catch (IOException e) {
 // TODO Bloc catch erreur
 e.printStackTrace();
   }

   String[] separated = RcptDonnee.split("#");

   if (separated[0] == "ConnexionAndroid"){
 AlertDialog alertDialog;
 alertDialog = new AlertDialog.Builder(this).create();
 alertDialog.setTitle("Erreur Serveur");
 alertDialog.setMessage(separated[0]);
 alertDialog.show();
 String[] separated2 = separated[1].split("\\{\\}");
   }
   else if(separated[0] =="InscriptionAndroid"){

   }
   else if (separated[0] =="TestConnexionAndroid"){

   }

  }
  }

Merci d'avance dans pour votre aide .

D'avance je vous informe que je débute en java mais j'ai de lourd connaissance et c# ce qui m'aide un peux on va dire ...

Lien vers le commentaire
Partager sur d’autres sites

Première piste d'erreur possible: en Java, le test d'égalité pour des chaînes de caractères ne se fait pas avec ==, mais avec la méthode equals

if (separated[0].equals("ConnexionAndroid"))

PS: dans tes prochains posts, pourrais-tu faire un effort sur l'orthographe et la ponctuation, parce que là, ton message en une seule "phrase" sans aucune ponctuation, c'est à la limite du compréhensible...

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

ceci était une des première erreur que j'ai eux pour le peux de temps qu'il arrive a marché ^^

Sinon personne peux m'aider sur mon problème avec une réception continue

edit :

PS: dans tes prochains posts, pourrais-tu faire un effort sur l'orthographe et la ponctuation, parce que là, ton message en une seule "phrase" sans aucune ponctuation, c'est à la limite du compréhensible...

Je vais essayer mais depuis longtemps j'ai des problèmes avec la ponctuation est l'orthographe etc enfin bref désoler du gêne.

Modifié par Drakilster
Lien vers le commentaire
Partager sur d’autres sites

Sinon personne peux m'aider sur mon problème avec une réception continue

A vrai dire, j'ai du mal à comprendre ce que tu veux faire, ou quel est le problème que tu rencontres...

Si tu pouvais préciser ce qui ne marche pas, quelle(s) erreur(s) tu rencontres, ... cela pourrait aider à la compréhension du problème...

Lien vers le commentaire
Partager sur d’autres sites

A vrai dire, j'ai du mal à comprendre ce que tu veux faire, ou quel est le problème que tu rencontres...

Si tu pouvais préciser ce qui ne marche pas, quelle(s) erreur(s) tu rencontres, ... cela pourrait aider à la compréhension du problème...

Je vais expliquer mon problème plus clairement enfin je pense :

1 j'ai un serveur c# sur mon pc

2- mon application android ce connecte

3-Elle arrive a envoyer des messages

4-Quand tu envoie un message et que j'appel la fonction réception tout va bien il réception mon message

mais mon problème et la .

Quand le serveur envoie des donnée et que le client android est connecté mais pas en mode de réception de message il ne recoi rien.Donc j'aimerais trouvé un moyen pour que la réception des messages soit une boucle interminable qui réception les message et puis analyse.

J'ai essayais avec un runnable mais j'avez un problème quand je changer la réception je croie qu'il y avez un problème.Enfin bref voila je chercher un moyen de faire comme un client c# un boucle infini via un worker qui exécute en arrière plan et évite de faire buger les autre codes.

edit: voici mon nouveaux code que j'ai essayer de mettre a jour :

private Runnable readingRun = new Runnable()
{
 public void run()
	    {
 try {
  InputStream input;
  input = s.getInputStream();
		 int readBytes;
		 byte[] buffer = new byte[1024];
		 while (((readBytes = input.read(buffer)) != 0))
		 {
			 if (readBytes!= 0)
			 {
				 String receivedStr = new String(buffer, 0, readBytes, "UTF-8");
				 String[] Analyse = receivedStr.split("#");
				 if (Analyse[0].equals("ConnexionAndroid")){
				  Toast Annonce =  Toast.makeText( getApplicationContext() , "Reception message serveur connexion" , Toast.LENGTH_SHORT );Annonce.show();
				 }
			 }
			 else
				 break;
		 }

 } catch (IOException e) {
  e.printStackTrace();
 }
 }
};

l'erreur est la

Toast Annonce =  Toast.makeText( getApplicationContext() , "Reception message serveur connexion" , Toast.LENGTH_SHORT );Annonce.show();

Modifié par Drakilster
Lien vers le commentaire
Partager sur d’autres sites

Je suppose que tu utilises ton Runnable au travers d'un thread ? Dans ce cas, l'erreur qui doit se produire vient du fait que l'affichage du Toast (qui est une opération d'IHM) ne peut se faire un thread secondaire, mais uniquement dans le thread principal.

Tu peux faire quelque chose comme cela pour faire en sorte que l'instruction concernant le Toast se fasse quand même dans le thread principal

 runOnUiThread(new Runnable() {
   public void run() {
     Toast Annonce =  Toast.makeText( getApplicationContext() , "Reception message serveur connexion" , Toast.LENGTH_SHORT );Annonce.show();
   }
 });

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

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