Ejemplo n.º 1
0
        override public void Start()
        {
            base.Start();

            _estimated_time_left = DateTime.UtcNow.AddSeconds(1);
            SimpleTimer.Enqueue(Finished, null, 1000, 0);

            BH.Subscribe(this, null);
            _bs = new BroadcastSender(Forwarder as StructuredNode, Forwarders);
            _bs.Send(Simulator.SimBroadcastPType);
        }
Ejemplo n.º 2
0
 /// <summary>Stores data about this hop in a broadcast and provides a path
 /// back to the originating broadcaster.</summary>
 public BroadcastReceiver(BroadcastSender bs)
 {
   Node = bs.Node;
   From = bs.From;
   To = bs.To;
   Source = bs.Source;
   Hops = bs.Hops;
   _bs = bs;
   _sender = new AHSender(Node, Source,
       AHSender.DefaultTTLFor(Node.NetworkSize),
       AHHeader.Options.Exact);
 }
Ejemplo n.º 3
0
 public MainWindow()
 {
     XmlManager xmlDeleter = new XmlManager();
     xmlDeleter.deleteXml();
     InitializeComponent();
     XmlManager xmlManager = new XmlManager();
     xmlManager.addChildToCategory(Categories.MUSIC, "C:\\Users\\Dennis\\Music");
     xmlManager.addChildToCategory(Categories.MUSIC, "C:\\Users\\Dennis\\Pictures");
     //TODO: Initialization
     xmlManager.addServerPassword("test123456789123");
     xmlManager.saveXml();
     BroadcastSender mBroadcastSender = new BroadcastSender(1);
     Thread BcSender = new Thread(mBroadcastSender.run);
     BcSender.Start();
     SmartTransferServer smartTransferServer = new SmartTransferServer();
     Thread serverThread = new Thread(smartTransferServer.run);
     serverThread.Start();
 }
Ejemplo n.º 4
0
        /// <summary>Revoke a random node from a random node.</summary>
        public NodeMapping Revoke(bool log)
        {
            NodeMapping revoked = Nodes.Values[_rand.Next(0, Nodes.Count)];
            NodeMapping revoker = Nodes.Values[_rand.Next(0, Nodes.Count)];

            while (revoked != revoker)
            {
                revoker = Nodes.Values[_rand.Next(0, Nodes.Count)];
            }

            string username           = revoked.Node.Address.ToString().Replace('=', '0');
            UserRevocationMessage urm = new UserRevocationMessage(_se_key, username);
            BroadcastSender       bs  = new BroadcastSender(revoker.Node as StructuredNode);

            bs.Send(new CopyList(BroadcastRevocationHandler.PType, urm));
            if (log)
            {
                Console.WriteLine("Revoked: " + revoked.Node.Address);
            }
            return(revoked);
        }
Ejemplo n.º 5
0
    /// <summary>Revoke a random node from a random node.</summary>
    public NodeMapping Revoke(bool log)
    {
      NodeMapping revoked = Nodes.Values[_rand.Next(0, Nodes.Count)];
      NodeMapping revoker = Nodes.Values[_rand.Next(0, Nodes.Count)];
      while(revoked != revoker) {
        revoker = Nodes.Values[_rand.Next(0, Nodes.Count)];
      }
 
      string username = revoked.Node.Address.ToString().Replace('=', '0');
      UserRevocationMessage urm = new UserRevocationMessage(_se_key, username);
      BroadcastSender bs = new BroadcastSender(revoker.Node as StructuredNode);
      bs.Send(new CopyList(BroadcastRevocationHandler.PType, urm));
      if(log) {
        Console.WriteLine("Revoked: " + revoked.Node.Address);
      }
      return revoked;
    }
Ejemplo n.º 6
0
    /// <summary>Performs a broadcast from the node at idx using the specified
    /// amount of forwarders.</summary>
    public void Broadcast(int idx, int forwarders)
    {
      _bcast.Start();
      NodeMapping nm = Nodes.Values[idx];
      BroadcastSender bs = new BroadcastSender(nm.Node as StructuredNode, forwarders);
      bs.Send(BroadcastHelper.PType);

      DateTime start = DateTime.UtcNow;
      int to_run = (int) ((_bcast.EstimatedTimeLeft - start).Ticks /
          TimeSpan.TicksPerMillisecond);

      while(to_run > 0) {
        SimpleTimer.RunSteps(to_run);
        to_run = (int) ((_bcast.EstimatedTimeLeft - DateTime.UtcNow).Ticks /
            TimeSpan.TicksPerMillisecond);
      }

      StreamWriter sw = null;
      if(_parameters.Broadcast >= -1) {
        FileStream fs = new FileStream(_parameters.Output, FileMode.Append);
        sw = new StreamWriter(fs);
      }

      int slowest = -1;
      List<int> sent_to = new List<int>();
      foreach(BroadcastReceiver br in _bcast.Results) {
        sent_to.Add(br.SentTo);
        if(sw != null) {
          sw.WriteLine(br.SentTo + ", " + br.Hops);
        }
        slowest = Math.Max(slowest, br.Hops);
      }

      if(sw != null) {
        sw.Close();
      }

      sent_to.Add(bs.SentTo);
      double avg = Average(sent_to);
      double stddev = StandardDeviation(sent_to, avg);
      Console.WriteLine("Average: {0}, StdDev: {1}", avg, stddev);
      Console.WriteLine("Hit: {0}, in: {1} ", _bcast.Results.Count, slowest);
    }