/// <summary> /// 获取一个pcap状态对象,计算bps和pps /// </summary> private void device_OnPcapStatistics(object sender, StatisticsModeEventArgs e) { // Calculate the delay in microseconds from the last sample. // This value is obtained from the timestamp that's associated with the sample. ulong delay = (e.Statistics.Timeval.Seconds - oldSec) * 1000000 - oldUsec + e.Statistics.Timeval.MicroSeconds; // Bits per second ulong bps = ((ulong)e.Statistics.RecievedBytes * 8 * 1000000) / delay; /* ^ ^ | | | | | | | converts bytes in bits -- | | | delay is expressed in microseconds -- */ // Get the number of Packets per second ulong pps = ((ulong)e.Statistics.RecievedPackets * 1000000) / delay; // Convert the timestamp to readable format var ts = e.Statistics.Timeval.Date.ToLongTimeString(); string info = "时间:" + ts + "; 每秒" + bps + "字节; 每秒" + pps + "个数据包"; utility.WriteLine(ref this.txtbStatistic, info); //存储当前时间戳 oldSec = e.Statistics.Timeval.Seconds; oldUsec = e.Statistics.Timeval.MicroSeconds; }
/// <summary> /// 获取一个pcap状态对象,计算bps和pps /// </summary> private void device_OnPcapStatistics(object sender, StatisticsModeEventArgs e) { // Calculate the delay in microseconds from the last sample. // This value is obtained from the timestamp that's associated with the sample. ulong delay = (e.Statistics.Timeval.Seconds - oldSec) * 1000000 - oldUsec + e.Statistics.Timeval.MicroSeconds; // Bits per second ulong bps = ((ulong)e.Statistics.RecievedBytes * 8 * 1000000) / delay; /* ^ ^ | | | | | | converts bytes in bits -- | | delay is expressed in microseconds -- */ // Get the number of Packets per second ulong pps = ((ulong)e.Statistics.RecievedPackets * 1000000) / delay; // Convert the timestamp to readable format var ts = e.Statistics.Timeval.Date.ToLongTimeString(); string info = "时间:" + ts + "; 每秒" + bps + "字节; 每秒" + pps + "个数据包"; utility.WriteLine(ref this.txtbStatistic, info); //存储当前时间戳 oldSec = e.Statistics.Timeval.Seconds; oldUsec = e.Statistics.Timeval.MicroSeconds; }
/// <summary> /// 抓包统计方法 /// </summary> private static void device_OnPcapStatistics(object sender, StatisticsModeEventArgs e) { // 计算统计心跳间隔 ulong delay = (e.Statistics.Timeval.Seconds - oldSec) * 1000000 - oldUsec + e.Statistics.Timeval.MicroSeconds; // 获取 Bits per second ulong bps = ((ulong)e.Statistics.RecievedBytes * 8 * 1000000) / delay; /* ^ ^ | | | | | | converts bytes in bits -- | | delay is expressed in microseconds -- */ // 获取 Packets per second ulong pps = ((ulong)e.Statistics.RecievedPackets * 1000000) / delay; // 将时间戳装换为易读格式 var ts = e.Statistics.Timeval.Date.ToLongTimeString(); // 输出统计结果 Console.WriteLine("{0}: bps={1}, pps={2}", ts, bps, pps); //记录本次统计时间戳,以用于下次统计计算心跳间隔 oldSec = e.Statistics.Timeval.Seconds; oldUsec = e.Statistics.Timeval.MicroSeconds; }
void device_OnPcapStatistics(object sender, StatisticsModeEventArgs e) { foreach (ISensorReport reportMethod in _reportMethods) { reportMethod.ReportStatistics(e.Statistics, _lastTimeval, _sensorId.ToString()); } _lastTimeval = e.Statistics.Timeval; }
void OnPcapStatistics(object sender, StatisticsModeEventArgs e) { // Console.WriteLine(port + " " + e.Statistics.RecievedBytes); receviedBytes.Enqueue( new Data() { bytes = e.Statistics.RecievedBytes, dateTime = DateTime.Now, } ); }
private void update_statistics(object sender, StatisticsModeEventArgs e) { StatisticsModePacket statistics = e.Statistics; long delay = (long)((statistics.Timeval.Seconds - _oldseconds) * 1000000 + (statistics.Timeval.MicroSeconds - _oldmicroseconds)); _transferspeed = (statistics.RecievedBytes * 1000000) / delay / 1024; _message = format_message(_stopwatch.Elapsed, "Transferspeed", _transferspeed.ToString(), "kB/s"); this.callback.on_transfer_speed_change(_message, this.results); this.main_view.text_to_logs(_message); _oldseconds = statistics.Timeval.Seconds; _oldmicroseconds = statistics.Timeval.MicroSeconds; }
private void device_OnPcapStatistics(object sender, StatisticsModeEventArgs e) { //ulong delay = (e.Statistics.Timeval.Seconds - oldSec) * 1000000 - oldUsec + e.Statistics.Timeval.MicroSeconds; //ulong bps = ((ulong)e.Statistics.RecievedBytes * 8 * 1000000) / delay; //ulong pps = ((ulong)e.Statistics.RecievedPackets * 1000000) / delay; //var ts = e.Statistics.Timeval.Date; int seconds = (int)((DateTime.Now - Globals.StartTime).TotalSeconds); System.Windows.Point point = new System.Windows.Point(); point.X = seconds; point.Y = e.Statistics.RecievedPackets; RealTimeWindow._plist.AppendAsync(base.Dispatcher, point); point.Y = e.Statistics.RecievedBytes; RealTimeWindow._blist.AppendAsync(base.Dispatcher, point); Console.WriteLine("{0},{1},{2}", seconds, e.Statistics.RecievedPackets, e.Statistics.RecievedBytes); //oldSec = e.Statistics.Timeval.Seconds; //oldUsec = e.Statistics.Timeval.MicroSeconds; }