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; }
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); } } }