static void Main(string[] args) { SenderReceiver sr = new SenderReceiver(); ReceiverSender rs = new ReceiverSender(); byte[] sendbuf, bytebufreceive; while (true) { Console.WriteLine("Digite uma mensagem: "); sendbuf = Encoding.ASCII.GetBytes(Console.ReadLine()); sr.s.SendTo(sendbuf, sr.ep); Console.WriteLine("Mensagem enviada para o endereço..."); try { Console.WriteLine("Esperando por mensagens..."); bytebufreceive = rs.listener.Receive(ref rs.groupEP); Console.WriteLine("Mensagem recebida:"); Console.WriteLine(Encoding.ASCII.GetString(bytebufreceive, 0, bytebufreceive.Length)); } catch (SocketException e) { Console.WriteLine(e.Message); } Thread.Sleep(500); } }
static void ReceiveMessage(string ip, ReceiverSender rs) { SenderReceiver sr = new SenderReceiver(ip); byte[] bytebufreceive, bytesendreply; string message = ""; while (true) { try { bytebufreceive = rs.listener.Receive(ref rs.groupEP); message = Encoding.ASCII.GetString(bytebufreceive, 0, bytebufreceive.Length); Console.WriteLine("Mensagem recebida do IP({0}): {1}", ip, message); if (message.ToLower().Trim() == "heartbeat request") { bytesendreply = Encoding.ASCII.GetBytes("Heartbeat Reply"); Console.WriteLine("Mensagem enviada para o endereço {0}", ip); sr.s.SendTo(bytesendreply, sr.ep); } } catch (SocketException e) { Console.WriteLine(e.Message); } Thread.Sleep(500); } }
static void NovaThread(string ip) { SenderReceiver sr = new SenderReceiver("172.18.3.83"); ReceiverSender rs = new ReceiverSender(); byte[] sendbuf, bytebufreceive; while (true) { Thread.Sleep(500); sendbuf = Encoding.ASCII.GetBytes("HeartBeat Request"); sr.s.SendTo(sendbuf, sr.ep); Console.WriteLine("Mensagem enviada para o endereço..."); try { Console.WriteLine("Esperando por mensagens..."); bytebufreceive = rs.listener.Receive(ref rs.groupEP); Console.WriteLine("Mensagem recebida:"); Console.WriteLine(Encoding.ASCII.GetString(bytebufreceive, 0, bytebufreceive.Length)); } catch (SocketException e) { Console.WriteLine(e.Message); } Thread.Sleep(500); } }
static void ReceiveMessage(List <string> ips, ReceiverSender rs) { SenderReceiver sr; byte[] bytebufreceive, bytesendreply; string message = ""; while (true) { try { bytebufreceive = rs.listener.Receive(ref rs.groupEP); message = Encoding.ASCII.GetString(bytebufreceive, 0, bytebufreceive.Length); //Console.WriteLine("Mensagem recebida do IP({0}): {1}", rs.groupEP.Address, message); if (message.ToLower().Trim() == "heartbeat request") { bytesendreply = Encoding.ASCII.GetBytes("HeartBeat Reply"); // Console.WriteLine("Mensagem enviada para o endereço {0}", rs.groupEP.Address); sr = new SenderReceiver(rs.groupEP.Address.ToString()); sr.s.SendTo(bytesendreply, sr.ep); if (!ips.Contains(rs.groupEP.Address.ToString())) { ips.Add(rs.groupEP.Address.ToString()); ipsDict.Add(rs.groupEP.Address.ToString(), ipsDict.Count); Thread s = new Thread(() => SendMessage(rs.groupEP.Address.ToString())); s.Start(); } } if (!alive.Contains(rs.groupEP.Address.ToString())) { alive.Add(rs.groupEP.Address.ToString()); foreach (string ip in alive) { int position = ipsDict[ip]; if (position < lider) { lider = position; liderIP = ip; } } Console.WriteLine("Lider: {0} | IP: {1}", lider, liderIP); } Thread.Sleep(1000); } catch (SocketException e) { Console.WriteLine(e.Message); } } }
static void SendMessage(string ip) { SenderReceiver sr = new SenderReceiver(ip); byte[] sendbuf; while (true) { sendbuf = Encoding.ASCII.GetBytes("HeartBeat Request"); sr.s.SendTo(sendbuf, sr.ep); //Console.WriteLine("Mensagem enviada para o endereço {0}", ip); Thread.Sleep(1000); } }
static void ResponseRequest(SenderReceiver senderReceiver, byte[] bytesendreply) { senderReceiver.s.SendTo(bytesendreply, senderReceiver.ep); }