public void analyseReponse(string reponse) { switch (reponse.Split(':')[0]) { case "ALOGIN": switch (reponse.Split(':')[1]) { case "404\r\n": MessageBox.Show("la connection a échouée"); this.Close(); break; case "200\r\n": break; default: MessageBox.Show("Serveur incohérent"); this.Close(); break; } break; case "ASEND": switch (reponse.Split(':')[1]) { case "404\r\n": MessageBox.Show("erreur dans l'envoi du message"); break; case "200\r\n": this.Dispatcher.Invoke(new Action(() => { MSG.Clear(); })); break; default: MessageBox.Show("Serveur incohérent"); break; } break; case "LIST": bool isGone; bool isNew; for (int a = 0; a < connectedUsers.Count; a++) { isGone = true; for (int i = 1; i < reponse.Split(':').Length - 1; i++) { if (reponse.Split(':')[i] == connectedUsers[a].id) { isGone = false; } } if (isGone) { connectedUsers[a].isConnected = false; } else { connectedUsers[a].isConnected = true; } } for (int i = 1; i < reponse.Split(':').Length - 1; i++) { isNew = true; foreach (User usr in connectedUsers) { if (usr.id == reponse.Split(':')[i]) { isNew = false; } } if (isNew) { connectedUsers.Add(new User(reponse.Split(':')[i])); } } Load = new Thread(LoadUsers); Load.Start(); break; case "RECIEVE": foreach (User usr in connectedUsers) { if (reponse.Split(':')[1] == usr.id) { usr.messages.Add(reponse.Split(':')[2]); } } this.Dispatcher.Invoke(new Action(() => { updateMessages(); })); break; default: MessageBox.Show("Serveur incohérent"); break; } }