الإتصال عبر السوكت باستخدام البروتوكول UDP - سي شارب - مقـــالات - Top Coder
Welcome to our Site
الدخــول Or تسجـــيل
السبت
2016-12-10
5:31 PM
تسجــــيل | دخـــول
الرئيسية » مقالات » سي شارب

الإتصال عبر السوكت باستخدام البروتوكول UDP
الإتصال عبر السوكت باستخدام البروتوكول UDP

مقــدمه
تحدثنا سابقا عن ال TCP – Connection Oriented Protocol وقلنا ان بروتوكول ال TCP هو بروتوكول موجه وهذا يعني انه يلزم احتواء ال Header الخاص به على عنوان المرسل و عنوان المستقبل كما يلزم ايضا القيام بعمليات التحقق Authentication و يدعم عمليات التحقق من الوصول و التسليم بشكل الصحيح .... لكن ماذا لو كان كل ذلك غير مهم بنسبة لك اذ تريد من برنامجك ان يقوم بعملية بث اذاعي Broadcast لرسالتك ولا يهمك من سوف يستلم الرسالة و ان السرعة في الإرسال و الإستقبال هي الهدف الأساسي اذا وجب عليك ترك بروتوكول ال TCP والتوجه نحو ال UDP User Datagram Protocol ويسمى ايضا بال Connectionless Protocol في هذا البروتوكول تستطيع عمل ما يسمى بال Broadcast و ال Multicast (البرود-يعني الإرسال الى الكل و الملتي-يعني الإرسال الى مجموعة اثنان او اكثر واليوني-يعني الإرسال لواحد فقط) يوجد شرط وحيد يلزم ان تأخذه بعين الإعتبار عند استخدام ال UDP لعملية البث بستخدام Broadcast وهو ان الشبكة التي تريد عمل بث لها تتصل معها بشكل مباشر Direct Connection اي بدون وجود Router بينك وبين المستقبل اذ ان ال Router يمنع عمليات البث الإذاعي Broadcast حيث يلزم ان تكون الشبكة ضمن ال Range Class سواء A او B او C  
استخدام UDP
لأستخدام ال UDP يلزم اولا تعريف النيم سبيس System.Net و ال System.Net.Socket لاحظ انه في ال TCP كان يلزم تعريف رقم البورت والعنوان للجهاز المستقبل اما في ال UDP فتستطيع تعريفه كما هو في TCP كما وتستطيع عمل Broadcast بستخدام IPAddress.Any بعد اشتقاق كائن من الكلاس IPEndPoint (وتعني نقطة الهدف) وتستطيع ايضا عدم تحديد رقم البورت وذلك بستخدام الميثود Bind() حيث يتم تعريفها بنقطة الهدف ب 0 ويتم كل ذلك كما يلي كمثال :
التالي هو الجزء الخاص بالسيرفر ووظيفته فتح البورت 9050والتنصت عليها ثم استلام الرسالة عبر هذا البورت وتوزيعها على الكل بدون تحديد رقم بورت معين حيث يتم تسليمها على البورت المخصص لعملية البرودكاست وهو البورت صفر:
 
 
تم الإنتهاء الأن من شرح الجزأ الخاص بسيرفر .. وسأعرض هنا الكود الخاص به بشكل كامل لكي تستطيع تطبيقه وهذا هو الكود:  
 
 
الأن الجزء الخاص بال Client , يقتصر العمل هنا على قيام ال Client بفتح جلسة مع السيرفر وذلك بعد تعريفه بنقطة الإستلام ورقم البورت وكما تم في السابق اللا ان الإختلاف هو في الوظيفة اذا يقتصر فقط على استقبال الرسالة من السيرفر وارسال اي رساله له عبر البورت المخصص للقيام بهذه العملية انظر الكود التالي :
 
ختـــام
المقاله تأتي ضمن سلسلة مقالات عن برمجة الشبكات على موقع ( الفريق العربي للبرمجة ) نتمنى ان تفيد رواد موقعنا  
المصـــــــــــدر
 Written by :  Mohammed Mahmoud
الفئة: سي شارب | أضاف: ham_mody2000 (2011-10-24 1:40 AM)
مشاهده: 3907 | الترتيب: 0.0/0


أترك تعليقك من خلال حسابك على الفيس بوك

تعليقات مشتركي الموقع

مجموع المقالات: 0
إضافة تعليق يستطيع فقط المستخدمون المسجلون
[ التسجيل | دخول ]
طريقة الدخول
بحث
Our Facebook community

تم إطلاق صفحة توب كودر على الفيس بوك

Advertisment
الأحـــدث
hitstatus
Copyright Mohammed Mahmoud © 2016
إنشاء موقع مجاني с uCoz