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

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

cksum_buffer[i] = BitConverter.ToUInt16(icmp_pkt_buffer,

icmp_header_buffer_index);

icmp_header_buffer_index += 2;

}

UInt16 u_cksum = checksum(cksum_buffer, cksum_buffer_length);

packet.CheckSum = u_cksum;

// Tuần tự hóa packet.

byte[] sendbuf = new byte[PacketSize];

index = Serialize(packet, sendbuf, PacketSize, PingData);

// Bắt đầu tính giờ.

dwStart = System.Environment.TickCount;

socket.SendTo(sendbuf, PacketSize, 0, epServer);

// Nhận đáp ứng, và ngừng tính giờ.

byte[] ReceiveBuffer = new byte[256];

socket.ReceiveFrom(ReceiveBuffer, 256, 0, ref EndPointFrom);

dwStop = System.Environment.TickCount - dwStart;

}

// Dọn dẹp và trả về thời gian "ping" (tính theo giây).

socket.Close();

return (int)dwStop;

}

private static int Serialize(IcmpPacket packet, byte[] buffer,

int packetSize, int pingData) {

// (Bỏ qua phương thức private dùng để tuần tự hóa packet.)

}

private static UInt16 checksum(UInt16[] buffer, int size) {

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.