amin_sltny
پنج شنبه 05 دی 1392, 13:24 عصر
سلالم من می خوام میزان حجم دانلود شده در یک سیستم را به دست بیارم و ان را کنترل کنم؟ کد اون را بهروش زیر نوشتم و میاد این کار را می کنه که network های یک سیستم را می گیره و sendbyte ها و recivebyte های اون ها را باهم جمع می کنه:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Management;
using System.Net;
using System.Configuration;
using System.Threading;
using System.Diagnostics;
using System.Net.NetworkInformation;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine( System.Net.NetworkInformation.NetworkInterface.Get IsNetworkAvailable().ToString());
// System.IO.DriveInfo[] a = System.IO.DriveInfo.GetDrives();
// foreach (var item in a)
// {
// Console.WriteLine(item.TotalFreeSpace.ToString());
// }
long sendbyte = 0;
long recivebyte = 0;
new Thread(new ThreadStart(delegate
{
NetworkInterface[] b = NetworkInterface.GetAllNetworkInterfaces();
while (true)
{
foreach (var item in b)
{
System.Net.NetworkInformation.NetworkInterface a = item;
IPv4InterfaceStatistics interfaceStats = item.GetIPv4Statistics();
sendbyte += interfaceStats.BytesSent;
recivebyte += interfaceStats.BytesReceived;
}
Thread.Sleep(1000);
}
})).Start();
new Thread(new ThreadStart(delegate
{
NetworkInterface[] b = NetworkInterface.GetAllNetworkInterfaces();
while (true)
{
foreach (var item in b)
{
Console.Clear();
Console.WriteLine("SendByte: " + sendbyte / 1024 + "kb");
Console.WriteLine("ReciveByte: " + recivebyte / 1024 + "kb");
}
Thread.Sleep(1000);
}
})).Start();
Console.Read();
}
}
}
اما من اینا نمی خوام آخه به جز حجم دانلود شده در سیستم یک سری data دیگه هم بین خود دستگاه ها (مثلا ASDL و PC( هست که انها راهم جمع می کنه ومن فقط اینترنت را می خوام باید چه کار کنم؟
ممنون
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Management;
using System.Net;
using System.Configuration;
using System.Threading;
using System.Diagnostics;
using System.Net.NetworkInformation;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine( System.Net.NetworkInformation.NetworkInterface.Get IsNetworkAvailable().ToString());
// System.IO.DriveInfo[] a = System.IO.DriveInfo.GetDrives();
// foreach (var item in a)
// {
// Console.WriteLine(item.TotalFreeSpace.ToString());
// }
long sendbyte = 0;
long recivebyte = 0;
new Thread(new ThreadStart(delegate
{
NetworkInterface[] b = NetworkInterface.GetAllNetworkInterfaces();
while (true)
{
foreach (var item in b)
{
System.Net.NetworkInformation.NetworkInterface a = item;
IPv4InterfaceStatistics interfaceStats = item.GetIPv4Statistics();
sendbyte += interfaceStats.BytesSent;
recivebyte += interfaceStats.BytesReceived;
}
Thread.Sleep(1000);
}
})).Start();
new Thread(new ThreadStart(delegate
{
NetworkInterface[] b = NetworkInterface.GetAllNetworkInterfaces();
while (true)
{
foreach (var item in b)
{
Console.Clear();
Console.WriteLine("SendByte: " + sendbyte / 1024 + "kb");
Console.WriteLine("ReciveByte: " + recivebyte / 1024 + "kb");
}
Thread.Sleep(1000);
}
})).Start();
Console.Read();
}
}
}
اما من اینا نمی خوام آخه به جز حجم دانلود شده در سیستم یک سری data دیگه هم بین خود دستگاه ها (مثلا ASDL و PC( هست که انها راهم جمع می کنه ومن فقط اینترنت را می خوام باید چه کار کنم؟
ممنون