فائدة - كيفية عمل Ping - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : الأقسام التعليمية - المنتدى القديم (http://vb4arb.com/vb/forumdisplay.php?fid=90) +--- قسم : مكتبة أكواد المنتدى (http://vb4arb.com/vb/forumdisplay.php?fid=111) +---- قسم : مكتبة أكواد .net (http://vb4arb.com/vb/forumdisplay.php?fid=117) +---- الموضوع : فائدة - كيفية عمل Ping (/showthread.php?tid=6352) |
فائدة - كيفية عمل Ping - RaggiTech - 17-10-12 كاتب الموضوع : أبو عابد
السلام عليكم ورحمة الله وبركاتهأمر Ping في الشبكات يستخدم لفحص الاتصال بين الجهاز المحلي و جهاز أخر على الشبكة بواسطة الـ IP الخاص به . وطريقته هو إرسال كمية من البايتات من الجهاز المرسل إلى المستقبل و يقوم المستقبل بالرد على هذه البايتات (بنفس العدد و الحجم) وهو ما يمسى بـ Replay . يقوم بعد ذلك الجهاز المرسل بفحص البايتات العائدة من الجهاز المستقبل و يقارنها بالبايتات المرسلة ليظهر بعد ذلك نتيجة الاتصال بين الجهازين عبر إحصائية تمثل عدد المرسل و المفقود و الوقت المستغرق للوصول (عدد القفزات) . بإمكانك تجربة هذا الأمر عن طريق الدوس . إبدأ Start ثم > تشغيل Run ثم اكتب cmd ستظهر لك شاشة سوداء ، أكتب فيها Ping ثم عنوان IP لأي جهاز على الشبكة ( لضمان وجود رد أكتب الـ IP التالي 127.0.0.1 وهو عنوان الجهاز نفسه) بعد الضغط على زر Enter ستظهر لك نتيجة الاختبار . حسناً ،،، نستطيع في الدوت نت تنفيذ هذا الأمر كالتالي : إنشاء كائن pingSender من الفئة Ping كود : Dim pingSender As New Ping الآن نستطيع إرسال بايتات إلى الجهاز المستقبل بواسطة الوظيفة Send التابعة للفئة Ping كالتالي : كود : pingSender.Send(strIPAddress, intTimeOut, buffer) 1- قيمة نصية String تمثل عنوان الجهاز المشتقبل . 2- قيمة عددية Integer تمثل الوقت الأقصى الذي يمكن فيه انتظار رد المستقبل . 3- مصفوفة من نوع Byte سيحمل حجم البايتات المرسلة للجهاز المستقبل . ولأجل تحقيق الفائدة من هذا كله يجب علينا قراءة القيم العائدة من هذا الاختبار . سنحتاج للإعلان عن كائن Reply من الفئة PingReply لأجل أن يستقبل تلك القيم . وعلى هذا يكون الكود كالتالي : كود : Dim Reply As PingReply = pingSender.Send(strIPAddress, intTimeOut, buffer) الآن يجب أن نختبر الكائن Replay هل نجح في عمله أم لا : كود : If Reply.Status = IPStatus.Success Then لقد غلفت هذه العملية بوظيفة كالتالي : كود : Public Sub PingIP(ByVal strIPAddress As String, _ أتمنى أن أكون قدمت لكم شيئاً مفيداً |