- Timestamp:
- 06/17/16 17:46:40 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/thasling/DistributedGA/DistributedGA.Core.Host/Program.cs
r13888 r13918 6 6 using DistributedGA.Core.Interface; 7 7 8 namespace DistributedGA.Core.Host 9 { 10 class Program 11 { 12 static void Main(string[] args) 13 { 14 try 15 { 16 Console.WriteLine("Starting peer..."); 17 string ipPrefix = ConfigurationManager.AppSettings["LanIpPrefix"]; 18 string serverUrl = ConfigurationManager.AppSettings["ContactServerURL"]; 8 namespace DistributedGA.Core.Host { 9 class Program { 10 static void Main(string[] args) { 11 try { 12 Console.WriteLine("Starting peer..."); 13 string ipPrefix = ConfigurationManager.AppSettings["LanIpPrefix"]; 14 string serverUrl = ConfigurationManager.AppSettings["ContactServerURL"]; 19 15 20 21 16 IMessageHandler h = new PeerNetworkMessageHandler(); 17 h.Init(ipPrefix, serverUrl); 22 18 23 PeerInfo pi = h.GetPeerInfo(); 24 Console.WriteLine(string.Format("Peer is hostet at IP: {0} and port: {1}", pi.IpAddress, pi.Port)); 25 Thread.Sleep(1000 * 20); 26 Console.WriteLine("Current peers within network:"); 27 foreach (var item in h.GetCurrentNetwork()) 28 { 29 Console.WriteLine(string.Format("Peer at {0}:{1}", item.IpAddress, item.Port)); 30 } 31 32 int i = 0; 33 while (true) 34 { 35 i++; 36 Thread.Sleep(1000); 37 var message = CreateMessage(pi, i); 38 Console.WriteLine("Publishing messages..."); 39 h.PublishDataToNetwork(message); 40 Console.WriteLine("Messages published."); 41 Console.WriteLine("Recieved messages:"); 42 foreach (var item in h.GetDataFromNetwork()) 43 { 44 Console.WriteLine(string.Format("Message:{0}", GetString(item))); 45 } 46 } 47 } 48 catch (Exception ex) 49 { 50 Console.WriteLine(ex.Message); 51 Console.WriteLine("press any key to continue..."); 52 Console.ReadLine(); 53 } 54 19 PeerInfo pi = h.GetPeerInfo(); 20 Console.WriteLine(string.Format("Peer is hostet at IP: {0} and port: {1}", pi.IpAddress, pi.Port)); 21 Thread.Sleep(1000 * 20); 22 Console.WriteLine("Current peers within network:"); 23 foreach (var item in h.GetCurrentNetwork()) { 24 Console.WriteLine(string.Format("Peer at {0}:{1}", item.IpAddress, item.Port)); 55 25 } 56 26 57 private static byte[][] CreateMessage(PeerInfo pi, int iterationNumber) 58 { 59 string msg1 = string.Concat("Message 1 from Peer ", pi.IpAddress, ":", pi.Port, " at iteration ", iterationNumber); 60 string msg2 = string.Concat("Message 2 from Peer ", pi.IpAddress, ":", pi.Port, " at iteration ", iterationNumber); 61 return new byte[][] { GetBytes(msg1), GetBytes(msg2) }; 27 int i = 0; 28 while (i < 20) { 29 i++; 30 Thread.Sleep(1000); 31 var message = CreateMessage(pi, i); 32 Console.WriteLine("Publishing messages..."); 33 h.PublishDataToNetwork(message); 34 Console.WriteLine("Messages published."); 35 Console.WriteLine("Recieved messages:"); 36 foreach (var item in h.GetDataFromNetwork()) { 37 Console.WriteLine(string.Format("Message:{0}", GetString(item))); 38 } 62 39 } 40 h.Dispose(); 41 } 42 catch (Exception ex) { 43 Console.WriteLine(ex.Message); 44 Console.WriteLine("press any key to continue..."); 45 Console.ReadLine(); 46 } 63 47 64 static byte[] GetBytes(string str) 65 { 66 byte[] bytes = new byte[str.Length * sizeof(char)]; 67 System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length); 68 return bytes; 69 } 48 } 70 49 71 static string GetString(byte[] bytes) 72 { 73 char[] chars = new char[bytes.Length / sizeof(char)]; 74 System.Buffer.BlockCopy(bytes, 0, chars, 0, bytes.Length); 75 return new string(chars); 76 } 50 private static byte[][] CreateMessage(PeerInfo pi, int iterationNumber) { 51 string msg1 = string.Concat("Message 1 from Peer ", pi.IpAddress, ":", pi.Port, " at iteration ", iterationNumber); 52 string msg2 = string.Concat("Message 2 from Peer ", pi.IpAddress, ":", pi.Port, " at iteration ", iterationNumber); 53 return new byte[][] { GetBytes(msg1), GetBytes(msg2) }; 77 54 } 55 56 static byte[] GetBytes(string str) { 57 byte[] bytes = new byte[str.Length * sizeof(char)]; 58 System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length); 59 return bytes; 60 } 61 62 static string GetString(byte[] bytes) { 63 char[] chars = new char[bytes.Length / sizeof(char)]; 64 System.Buffer.BlockCopy(bytes, 0, chars, 0, bytes.Length); 65 return new string(chars); 66 } 67 } 78 68 }
Note: See TracChangeset
for help on using the changeset viewer.