public CollectTransferedInformationForHub() { HubSetting settings = new HubSetting(); settings.Address = "127.0.0.1"; settings.Port = 411; settings.DisplayName = "FlowLib"; settings.Protocol = "Auto"; // Here we tell it we dont care what protocol it uses (Adc or Nmdc). Just try to connect. Hub hubConnection = new Hub(settings); // Here we bind hub to our data collector stats = new GeneralProtocolDataCollector(hubConnection); hubConnection.Connect(); General.BinaryPrefixes bp; Console.WriteLine("Press any key to update information"); do { Console.ReadKey(true); Console.Clear(); Console.WriteLine("Press any key to update information"); Console.WriteLine("=================================="); Console.WriteLine("Total data sent: " + General.FormatBytes(stats.TotalBytesSent, out bp) + bp); Console.WriteLine("Total data received: " + General.FormatBytes(stats.TotalBytesReceived, out bp) + bp); Console.WriteLine("current download speed: " + General.FormatBytes(stats.CurrentReceiveSpeed, out bp) + bp + "/s"); Console.WriteLine("current upload speed: " + General.FormatBytes(stats.CurrentSendSpeed, out bp) + bp + "/s"); Decimal d = new decimal(stats.MaximumReceiveSpeed); Console.WriteLine("Maximum download speed: " + General.FormatBytes(decimal.ToInt64(d), out bp) + bp + "/s"); d = new decimal(stats.MaximumSendSpeed); Console.WriteLine("Maximum upload speed: " + General.FormatBytes(decimal.ToInt64(d), out bp) + bp + "/s"); d = new decimal(stats.MinimumReceiveSpeed); Console.WriteLine("Minimum download speed: " + General.FormatBytes(decimal.ToInt64(d), out bp) + bp + "/s"); d = new decimal(stats.MinimumSendSpeed); Console.WriteLine("Minimum upload speed: " + General.FormatBytes(decimal.ToInt64(d), out bp) + bp + "/s"); Console.WriteLine("=================================="); } while (true); }
void hubConnection_Update(object sender, FmdcEventArgs e) { Hub hub = (Hub)sender; switch (e.Action) { case Actions.TransferRequest: if (e.Data is TransferRequest) { TransferRequest req = (TransferRequest)e.Data; if (transferManager.GetTransferReq(req.Key) == null) transferManager.AddTransferReq(req); } break; case Actions.TransferStarted: Transfer trans = e.Data as Transfer; if (trans != null) { // Here we bind transfer to our data collector stats = new GeneralProtocolDataCollector(trans); transferManager.StartTransfer(trans); trans.Protocol.ChangeDownloadItem += new FmdcEventHandler(Protocol_ChangeDownloadItem); trans.Protocol.RequestTransfer += new FmdcEventHandler(Protocol_RequestTransfer); } break; case Actions.UserOnline: bool hasMe = (hub.GetUserById(hub.Me.ID) != null); if (!sentRequest && hasMe) { User usr = null; if ((usr = hub.GetUserByNick("DCpp706")) != null) { // Adding filelist of unknown type to download manager. // to the user DCpp706 ContentInfo info = new ContentInfo(ContentInfo.FILELIST, BaseFilelist.UNKNOWN); info.Set(ContentInfo.STORAGEPATH, currentDir + "Filelists\\" + usr.StoreID + ".filelist"); downloadManager.AddDownload(new DownloadItem(info), new Source(hub.RemoteAddress.ToString(), usr.StoreID)); // Start transfer to user UpdateBase(this, new FmdcEventArgs(Actions.StartTransfer, usr)); sentRequest = true; } } break; } }
void Connection_Update(object sender, FlowLib.Events.FmdcEventArgs e) { switch (e.Action) { case Actions.TransferStarted: Transfer trans = e.Data as Transfer; if (trans != null) { // Here we bind transfer to our data collector stats = new GeneralProtocolDataCollector(trans); if (trans.Protocol == null) { trans.Protocol = new FlowLib.Protocols.AdcProtocol(trans); trans.Listen(); transferManager.AddTransfer(trans); } trans.Protocol.ChangeDownloadItem += new FmdcEventHandler(Protocol_ChangeDownloadItem); trans.Protocol.RequestTransfer += new FmdcEventHandler(Protocol_RequestTransfer); trans.ProtocolChange += new FmdcEventHandler(trans_ProtocolChange); e.Handled = true; } break; } }