Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
06/17/16 17:46:40 (8 years ago)
Author:
thasling
Message:

#2615: implemented Dispose()-Method in all classes
also sending a message with the wcf-sender class was rewritten, because of Dispose
added new log entries when server removes peers from its dicionary

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/thasling/DistributedGA/DistributedGA.Core.Host/Program.cs

    r13888 r13918  
    66using DistributedGA.Core.Interface;
    77
    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"];
     8namespace 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"];
    1915
    20                 IMessageHandler h = new PeerNetworkMessageHandler();
    21                 h.Init(ipPrefix, serverUrl);
     16        IMessageHandler h = new PeerNetworkMessageHandler();
     17        h.Init(ipPrefix, serverUrl);
    2218
    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));
    5525        }
    5626
    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          }
    6239        }
     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      }
    6347
    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    }
    7049
    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) };
    7754    }
     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  }
    7868}
Note: See TracChangeset for help on using the changeset viewer.