private void join_Click(object sender, EventArgs e) { if (chanelList.SelectedItem == null) { MessageBox.Show("Vous devez selectionner un topics"); return; } currentChannel = chanelList.SelectedItem.ToString(); if (privateChannels.Contains(currentChannel)) { chatBody.Clear(); UpdateChatBody(channels[currentChannel]); return; } if (!channels.ContainsKey(chanelList.SelectedItem.ToString())) //Si le topic n'existe pas on l'ajoute dans notre dictionnaire { channels.Add(currentChannel, new List <Message>()); } chatBody.Clear(); UpdateChatBody(channels[currentChannel]); //Message pour être inscrit dans la liste des utilisateurs dans le channel Message message = new Message(); message.author = Nickname; message.channel = currentChannel; message.code = 2; Utils.Utils.sendMsg(comm.GetStream(), message); }
private void create_Click(object sender, EventArgs e) { string value = "new channel"; if (InputBox("Créé un channel", "New channel name:", ref value, true) == DialogResult.OK) { currentChannel = value; Message message = new Message(); message.author = Nickname; message.channel = currentChannel; message.code = 2; Utils.Utils.sendMsg(comm.GetStream(), message); } }
private void UpdateChatBody(Message msg) { Console.WriteLine("Message recu : " + msg); //On remplit le richtextbox avec les données reues //lorsqu'on a tout réceptionné if (chatBody.InvokeRequired) { chatBody.Invoke(new UpdateChatBodyDelegate(UpdateChatBody), msg); } else { if (msg.channel == currentChannel) { chatBody.Text += msg.author + " say : " + msg.message + "\n"; } } }
private void Connect_Click(object sender, EventArgs e) { if (Nick.Text == "") { MessageBox.Show("Le pseudo ne peut être null"); return; } if (ServerHost.Text == "") { MessageBox.Show("Le nom du serveur ne peut être null"); return; } //if (!checkUserAccount(Nick.Text,Password.Text)) //{ // Console.WriteLine("Failed to connect"); // return; //} comm = new TcpClient(ServerHost.Text, 8976); Nickname = Nick.Text; Utils.Message message = new Utils.Message(); message.author = Nickname; message.channel = "Général"; message.code = -1; string msg2 = "Hello"; Utils.Utils.sendMsg(comm.GetStream(), message); Message response = Utils.Utils.rcvMsg(comm.GetStream()); if (response.code != 0) //Erreur, something wrong { MessageBox.Show(response.message); } //Si on était précedement connecté on stop le thread UpdateChatBody(response); ReceiveMessageThread = new Thread(() => ReceiveMessages(comm)); ReceiveMessageThread.Start(); }
private void ReceiveMessages(TcpClient comm) { while (true) { if (comm.Connected) { Message message = Utils.Utils.rcvMsg(comm.GetStream()); Console.WriteLine(message); if (!channels.ContainsKey(message.channel)) { channels.Add(message.channel, new List <Message>()); } if (message.code == 4) //On nous envoi les liste des utilisateurs dans le channel { List <string> result = message.message.Split(',').ToList(); UpdateListUser(result); continue; } if (message.code == 5) { privateChannels.Add(message.channel); } channels[message.channel].Add(message); UpdateChatBody(message); if (message.code == 3) { Console.WriteLine("Chat body clear"); clearChatBody(); } UpdateListChannel(new List <string>(channels.Keys)); } else //On est plus connecté donc on arrête tout { MessageBox.Show("Disconnected"); } } }