[VB.Net]Tạo ứng dụng ping 2 máy

Các bài viết hướng dẫn về Visual Basic .NET và C#

Moderators: tungcan5diop, QUANITGROBEST

Post Reply
neverland87
Guru
Guru
Posts: 490
Joined: Sat 26/05/2007 4:31 pm
Been thanked: 8 times

[VB.Net]Tạo ứng dụng ping 2 máy

Post by neverland87 »

Tên bài viết: Tạo ứng dụng ping 2 máy
Tác giả: neverland87
Cấp độ bài viết: Trung bình
Tóm tắt:
Lệnh ping đã trở nên quá phổ biến đối với người dùng cơ bản. Đối với lập trình viên, khi .NET chưa "ra lò", để lập trình ping giữa 2 máy, đòi hỏi người lập trình phải viết rất nhiều mã. Nhưng .NET với những thư viện class được xây dựng sẵn, sẽ giúp bạn dễ dàng làm được điều này.
1.Tạo ứng dụng Windows Forms với:
- 2 label
- 2 textbox: txtIpToPing (nhận IP của máy cần ping) và txtResults (hiển thị kết quả của quá trình ping)
- 1 button để thực hiện thao tác ping: btnPing
Hình:
pic01.png
pic01.png (9.32 KiB) Viewed 3982 times
2.Import các namespace sau:

Code: Select all

Imports System.NetImports System.Net.NetworkInformation
3.Thụ lý tình huống Click của btnPing:

Code: Select all

Private Sub btnPing_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPing.Click        'ip của máy cần ping        Dim ipToPing As String = txtIpToPing.Text.Trim        Dim pingSender As New Ping()        'lượng thời gian tối đa để hoàn thành 1 lần ping        Dim timeOut As Integer = 120        'gửi gói tin 4  bytes đến máy cần ping        'để kiểm tra tình trạng thông suốt giữa 2 máy        Dim data As String = "aaaa"        Dim buffer() As Byte = System.Text.Encoding.ASCII.GetBytes(data)        'đối tượng pingSender gửi đi gói tin ICMP        'và trả về đối tượng của lớp PingReply cho biết kết quả của lệnh ping        Dim pReply As PingReply = pingSender.Send(ipToPing, timeOut, buffer)        'nếu 2 máy thông nhau - Success!!        If pReply.Status = IPStatus.Success Then            txtResults.Text = "Address: " & pReply.Address.ToString & Environment.NewLine            txtResults.Text += "Status: " & pReply.Status.ToString & Environment.NewLine            txtResults.Text += "Buffer size: " & pReply.Buffer.Length        Else            txtResults.Text = pReply.Status.ToString        End If    End Sub
Đoạn mã trên có ý nghĩa như sau: đầu tiên chúng ta sẽ nhận lấy IP cần ping từ textbox txtIpToPing, để ping 1 máy, ta cần sử dụng phương thức Send (hoặc SendAsync) của đối tượng thuộc lớp Ping này. Một nạp chồng của phương thức Send nhận các thông số lần lượt như sau: (<ip cần ping>,<thời gian timeout>,<gói tin với kích thước tùy ý>)
Kết quả của phương thức Send sẽ trả về thông tin của lệnh ping tương ứng, và .NET đã gói gọn thông tin này vào lớp PingReply. Đối tượng của lớp này có 2 thuộc tính: Address là địa chỉ ta vừng ping tới, và Buffer là gói tin ta vừa gửi để kiểm tra sự thông nhau giữa 2 máy tính.

Kết quả:
pic02.png
pic02.png (10.13 KiB) Viewed 3985 times
SIMPLY THE BEST - ĐƠN GIẢN LÀ TỐT NHẤT
User avatar
clarkkent
Mạnh Thường Quân
Mạnh Thường Quân
Posts: 1641
Joined: Wed 16/04/2008 11:25 am
Location: Chợ Lách - Bến Tre
Been thanked: 32 times
Contact:

Re: [VB.Net]Tạo ứng dụng ping 2 máy

Post by clarkkent »

Hic! Nhấn lộn nút báo cáo, không có gì đâu??? @-) @-) @-)

Đã test...
• Hôm bây: www.tinsoftware.com ^ ^
Cố gắng lên...
User avatar
mienphifull
Thành viên chính thức
Thành viên chính thức
Posts: 11
Joined: Tue 03/08/2010 3:04 pm
Location: HCM
Contact:

Re: [VB.Net]Tạo ứng dụng ping 2 máy

Post by mienphifull »

nếu có lỗi thì làm sao đây.
ví dụ : tôi ping tuoitre.vn thì được
nhưng giả sử tôi gõ thiếu tuoitre.v thì sẽ có lỗi
làm sao khắc phục lỗi đó được
!@#$%^&*()_+|
User avatar
mienphifull
Thành viên chính thức
Thành viên chính thức
Posts: 11
Joined: Tue 03/08/2010 3:04 pm
Location: HCM
Contact:

Re: [VB.Net]Tạo ứng dụng ping 2 máy

Post by mienphifull »

lay hoay rùi cũng biết
thế là tui dùng try để xử lý
:-)
!@#$%^&*()_+|
Post Reply

Return to “[.NET] Bài viết hướng dẫn”