public static void ListenForMessages(object sender, DoWorkEventArgs doe)
        {
            BackgroundWorker bgw    = sender as BackgroundWorker;
            TcpListener      listen = (TcpListener)doe.Argument;

            while (!bgw.CancellationPending)
            {
                try
                {
                    TcpClient client = listen.AcceptTcpClient();
                    if (bgw.CancellationPending || client == null)
                    {
                        client.Close();
                        return;
                    }
                    StreamReader srIn   = new StreamReader(client.GetStream());
                    string       newMsg = srIn.ReadLine();
                    srIn.Close();
                    client.Close();

                    newMsg = TheHelper.separateHmac(newMsg);


                    bgw.ReportProgress(0, newMsg);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Error occurd in TCPListen -> " + ex.Message);
                }
            }
            return;
        }
Exemple #2
0
        public static void EncAndSend(object sender, DoWorkEventArgs doe)
        {
            TcpClient client;
            Random    rand = new Random();

            ArrayList parameters = (ArrayList)doe.Argument;
            string    msgToSend  = parameters[0].ToString();


            ArrayList groupMembers = parameters[1] as ArrayList;

            if (msgToSend.Contains("BYE"))
            {
                Console.WriteLine("Send the msg is :" + msgToSend);
            }

            msgToSend = TheHelper.EncryptMessage(msgToSend);

            for (int i = 0; i < groupMembers.Count; i++)
            {
                String[] member = groupMembers[i].ToString().Split(':');
                try
                {
                    client = new TcpClient();
                    client.Connect(member[0], Convert.ToInt32(member[1]));
                    StreamWriter swOut = new StreamWriter(client.GetStream());
                    swOut.WriteLine(msgToSend);
                    swOut.Flush(); swOut.Close(); client.Close();

                    int wait = rand.Next(100, 1500);
                    Thread.Sleep(wait);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Error occurd in TCPSend -> " + ex.Message);
                }
            }
        }