Jump to content

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


Drakilster
 Share

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

Link to comment
Share on other 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
Link to comment
Share on other 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.

Edited by Drakilster
Link to comment
Share on other 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...

Link to comment
Share on other 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();

Edited by Drakilster
Link to comment
Share on other 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
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...