/** * Sends a msg to a node */ private void sendMessage(Message msg, Knoten node) { if (sendId) { sendId = false; sendIdTo(); } try { //send a msg to a tcp listener TcpClient client = new TcpClient(node.ip, node.port); //Byte[] data = System.Text.Encoding.ASCII.GetBytes(msg); NetworkStream stream = client.GetStream(); var writer = new XmlSerializer(typeof(Message)); // Send the message to the connected TcpServer. //stream.Write(data, 0, data.Length); Console.WriteLine("Send Msg ##############################"); Console.WriteLine("Starte Sende " + DateTime.Now); writer.Serialize(stream, msg); Console.WriteLine("Sent to " + node.id + ", msg: " + msg.nachricht + ", at " + DateTime.Now); stream.Close(); client.Close(); Console.WriteLine("Verbindung Beendet " + DateTime.Now + Environment.NewLine); } catch (SocketException) { Console.WriteLine(" At Sending the Msg: " + msg.nachricht + ", node " + node.id + " not available " + DateTime.Now); } }
static void Main(string[] args) { Console.WriteLine(".exe id believecounter neighbord"); //TODO: read the files and id from args if (args.Length != 0) { Knoten k = new Knoten(Convert.ToInt32(args[0])); int believeCounter = Convert.ToInt32(args[1]); k.readNodes("test.txt"); k.nodeInit(); k.readGraph("graph1.gv"); Console.WriteLine("*************info*******************"); Console.WriteLine("id: " + k.id + ", ip:port: " + k.ip + ":" + k.port); Console.WriteLine("Nachbaranzahl: " + k.neighBors.Count); Console.WriteLine("*************!info******************"); //reducing neighbor number if (args.Length > 2) { k.neighborLimit(Convert.ToInt32(args[2])); } k.Listen(); foreach (var rumor in k.rumors) { if (rumor.believe(believeCounter)) { Console.WriteLine("believe " + rumor.rumor); } } Console.WriteLine("All Rumors **** "); Console.WriteLine("Node: " + k.id + ", bc: " + believeCounter); for (var i = 0; i < k.rumors.Count; i++) { Console.WriteLine("Rumor: " + k.rumors[i].rumor + ", Count: " + k.rumors[i].counter); } } }