CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 451

451

Chương 11: Lập trình mạng

// (Bỏ qua phương thức private dùng để tính checksum.)

}

}

public class IcmpPacket {

public byte Type;

public byte SubCode;

public UInt16 CheckSum;

public UInt16 Identifier;

public UInt16 SequenceNumber;

public byte[] Data;

}

Bạn có thể sử dụng phương thức tĩnh

Pinger.GetPingTime

với một địa chỉ IP hay một tên

miền. Phương thức

GetPingTime

trả về lượng mili-giây trôi qua trước khi một đáp ứng được

tiếp nhận. Dưới đây là đoạn mã thử nghiệm trên ba website:

public class PingTest {

private static void Main() {

Console.WriteLine("Milliseconds to contact www.yahoo.com:" +

Pinger.GetPingTime("www.yahoo.com").ToString());

Console.WriteLine("Milliseconds to contact www.seti.org:" +

Pinger.GetPingTime("www.seti.org").ToString());

Console.WriteLine("Milliseconds to contact the local computer:" +

Pinger.GetPingTime("127.0.0.1").ToString());

Console.ReadLine();

}

}

Thử nghiệm “ping” cho phép bạn xác minh các máy tính khác có online hay không. Nó cũng
có thể hữu ích khi ứng dụng của bạn cần đánh giá những máy tính khác nhau (ở xa) nhưng
cho cùng nội dung để xác định máy nào có thời gian giao tiếp mạng thấp nhất.

Một yêu cầu “ping” có thể không thành công nếu bị firewall ngăn lại. Ví dụ,
nhiều site bỏ qua yêu cầu “ping”
vì sợ bị sa vào một luồng “ping” cùng một lúc
sẽ làm cản trở server (thực chất là một tấn công từ chối dịch vụ).

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.