- [C#] Hướng dẫn giải nén file *.rar với tiến trình progress bar winform
- [C#] Chia sẻ source code make Crazy Error Message Effect Bomb Windows
- [C#] Lập trình ứng dụng theo mô hình MVP Model-View-Presenter Pattern Winform
- [C#] Giới thiệu và những thứ hay ho từ thư viện System.Reactive của Microsoft
- [C#] Hướng dẫn tạo ứng dụng Chat với GPT sử dụng Open AI API
- [DEVEXPRESS] Tạo month picker trên DateEdit Winform C#
- [DATABASE] Cách sử dụng và lưu ý khi sử dụng khóa ngoại (Foreign Key) trong Sqlserver
- [C#] Garbage Collector (GC) là gì? Cách giải phóng bộ nhớ trên ứng dụng Winform khi các đối tượng không còn sử dụng
- [C#] Cách tính độ tương phản màu sắc Contrast Color mà con người có thể nhìn thấy được
- [C#] Hướng dẫn mã hóa mật khẩu tài khoản ứng dụng đúng chuẩn Men
- [C#] Sử dụng Open AI Chat GPT viết ứng dụng Count down timer có hiệu ứng trên winform
- [DATABASE] Chia sẻ dữ liệu Pantone Color sql và json api
- [SQLSERVER] Tạo mã sản phẩm tự động như: SP0001, SP0002, SP0003... sử dụng Trigger
- [C#] Hướng dẫn kiểm tra phiên bản NET Framework cài đặt ở máy tính
- [C#] Hướng dẫn đọc file excel đơn giản sử dụng thư viện Epplus
- [C#] ConcurrentBag là gì và cách sử dụng nó trong lập trình bất đồng bộ
- [C#] AutoResetEvent là gì và cách sử dụng
- [DEVEXPRESS] Chia sẻ source code cách tạo biểu đồ sơ đồ tổ chức công ty Org Chart trên Winform C#
- [C#] Hướng dẫn tạo Auto Number trên Datagridview winform
- [DATABASE] Hướng dẫn tạo Procedure String Split in Mysql
[C#] Đo băng thông, bandwidth, download, ip và upload traffic
Bài viết hôm nay, mình xin hướng dẫn các bạn code C#, cách xem băng thông và tốc độ download và upload của card internet bằng ngôn ngữ C#.
Băng thông (BandWidth) là gì?
Băng thông tên quốc tế là bandwidth. Thuật ngữ này dùng để chỉ lưu lượng của tín hiệu điện được truyền qua thiết bị truyền dẫn trong một giây là bao nhiêu.
Trong lĩnh vực lưu trữ website, thuật ngữ "băng thông" thường được sử dụng để mô tả số lượng dữ liệu tối đa, mà bạn được phép trao đổi (bao gồm upload và download) qua lại giữa website (hoặc server) và người sử dụng trong một đơn vị thời gian (thường là tháng). Tóm lại, băng thông là thông số chỉ dung lượng tối đa mà website của bạn được lưu chuyển qua lại mỗi tháng.
Giao diện demo ứng dụng:
Souce code bandwidth, upload và download bằng C#
using System;
using System.Net.NetworkInformation;
using System.Windows.Forms;
using System.Collections.Generic;
namespace InterfaceTrafficWatch {
public partial class MainForm: Form {
private
const double timerUpdate = 1000;
private NetworkInterface[] nicArr;
private Timer timer;
public MainForm() {
InitializeComponent();
}
private void MainForm_Load(object sender, EventArgs e) {
InitializeTimer();
}
private void InitializeNetworkInterface() {
nicArr = NetworkInterface.GetAllNetworkInterfaces();
List goodAdapters = new List();
foreach(NetworkInterface nicnac in nicArr) {
if (nicnac.SupportsMulticast && nicnac.GetIPv4Statistics().UnicastPacketsReceived >= 1 && nicnac.OperationalStatus.ToString() == "Up") {
goodAdapters.Add(nicnac.Name);
cmbInterface.Items.Add(nicnac.Name);
}
}
if (goodAdapters.Count != cmbInterface.Items.Count && goodAdapters.Count != 0) {
cmbInterface.Items.Clear();
foreach(string gadpt in goodAdapters) {
cmbInterface.Items.Add(gadpt);
}
cmbInterface.SelectedIndex = 0;
}
if (goodAdapters.Count == 0) cmbInterface.Items.Clear();
}
Initialize the Timer private void InitializeTimer() {
timer = new Timer();
timer.Interval = (int) timerUpdate;
timer.Tick += new EventHandler(timer_Tick);
timer.Start();
}
Update GUI components
for the network interfaces private void UpdateNetworkInterface() {
MessageBox.Show(cmbInterface.Items.Count.ToString());
if (cmbInterface.Items.Count >= 1) {
interface NetworkInterface nic = nicArr[cmbInterface.SelectedIndex];
IPv4InterfaceStatistics interfaceStats = nic.GetIPv4Statistics();
long bytesSentSpeed = (long)(interfaceStats.BytesSent - double.Parse(lblBytesSent.Text)) / 1024;
long bytesReceivedSpeed = (long)(interfaceStats.BytesReceived - double.Parse(lblBytesReceived.Text)) / 1024;
lblSpeed.Text = nic.Speed.ToString();
lblInterfaceType.Text = nic.NetworkInterfaceType.ToString();
lblSpeed.Text = (nic.Speed).ToString("N0");
lblBytesReceived.Text = interfaceStats.BytesReceived.ToString("N0");
lblBytesSent.Text = interfaceStats.BytesSent.ToString("N0");
lblUpload.Text = bytesSentSpeed.ToString() + " KB/s";
lblDownload.Text = bytesReceivedSpeed.ToString() + " KB/s";
UnicastIPAddressInformationCollection ipInfo = nic.GetIPProperties().UnicastAddresses;
foreach(UnicastIPAddressInformation item in ipInfo) {
if (item.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) {
labelIPAddress.Text = item.Address.ToString();
uniCastIPInfo = item;
break;
}
}
}
}
void timer_Tick(object sender, EventArgs e) {
InitializeNetworkInterface();
UpdateNetworkInterface();
}
}
}
Các bạn có thể download code ở bên dưới để tham khảo.
Have fun :)