إرسال بيانات عبر الشبكه - سي شارب - مقـــالات - Top Coder
Welcome to our Site
الدخــول Or تسجـــيل
الأربعاء
2016-12-07
5:19 PM
تسجــــيل | دخـــول
الرئيسية » مقالات » سي شارب

إرسال بيانات عبر الشبكه
إرسال البيانات عبر الشبكه

مقــــدمه
موضوعنا اليوم من الموضوعات الشيقه , حيث تندرج تحت برمجة الشبكات , فسوف نبدأ بأول مقاله عن برمجة الشبكات بعرض موضوع بسيط يشرح كيف يمكن ارسال بيانات عبر الشبكه , وهو ما يعتبر من النقاط المهمه والأساسيه في هذا الجزء .
اساسيات
برمجة الشبكات موضوع كبير جدا ومتشعب , والمقاله ليست مجالاً للإستفاضه في شرح اساسيات الشبكات , ولكن هناك كتب ومقالات تشرح ذلك جيداً , ويمكنك تنزيل هذا الكتاب فسيساعدك في فهم ذلك
http://topcoder.ucoz.com/load/tcp_ip_programming_v2006/7-1-0-31

سنعتمد في موضوعنا على بروتوكول UDP لنقل البيانات , وهذا رغم ان TCP يعتبر افضل منه , ولكن سنبدأ بشرح عن طريق UDP نظراً لبساطة الإجراءات , وللقراءة اكثر عن هذا البروتوكول يمكنك قراءة المقاله في ويكيبيديا
ويكيبيديا - UDP

ويعتمد الارسال والاستقبال على كلاس UdpClient والذي يندرج تحت النيم سبيس System.Net.Sockets
حيث يقوم ذلك الكلاس بفتح اتصال مع الجهاز المستقبل من خلال ال IP الخاص به , وارسال البيانات على هيئه Byte , في حين يقوم الجهاز المستقبل باستقبال تلك البيانات وتحويلها الى اصلها , وسنقوم في شرحنا بأرسال نصوص كشرح لمبدأ العمل , ويمكنك على نفس المنوال ارسال ما تشاء من بيانات , فالأمر كله تحويل من والى byte

والداله التي تقوم بالإرسال تكون كالتالي  
Send Method
 
حيث يقوم client بعمل اتصال عن طريق ال IP الخاص بالمستقبل , وايضاً مع تحديد رقم البورت الذي سيتم الارسال عليه , ولابد ان يكون رقم البورت لدى المرسل والمستقبل هو نفسه , وهنا قمنا بالارسال عن طريق البورت رقم 1001 , حيث تم تحويل النص Your Message الى مصفوفه من نوع byte , ثم تم ارسالها عن طريق client , ثم تم اغلاق الاتصال .
المستقبل
وحتى هنا ينتهي دور المرسل , ويبدأ دور الجهاز المستقبل , حيث يقوم بالتنصت على البورت المخصص للبرنامج - وهو في حالتنا 1001 - وعند دخول بيانات يقوم باستقبالها - وتكون على هيئه مصفوفة من نوع byte - ويقوم يتحويلها الى اصلها وهو نص في الاساس
وتكون دالة الاستقبال كالتالي  
Recieve Method
 
تم تعريف كائن من نوع UdpClient , وتم وضع البورت الذي سيستقبل منه بياناته , وتم استخدام الكلاس IPEndPoint والذي يندرج تحت النيم سبيس System.Net , وهو يمثل ال IP المرسل
ثم تم عمل Loop لكي تقوم الداله باستمرار بتنفيذ الكود , وهو كود يفحص اي بيانات جديده على البورت , وهنا تقابلنا مشكله ان البرنامج سوف لن يستجيب الا بعد انتهاء تنفيذ الكود , والكود هنا لا ينتهي حيث سينفذ باستمرار , وبالتالي كان لابد من استخدام thread يقوم بتنفيذ ذلك الكود اثناء عمل البرنامج حتى لايؤثر ذلك على اداء البرنامج
وداخل اللوب تم استقبال البيانات وتحويلها الى نص , حتى تعود الى شكلها الاصلي الذي ارسلت به , وهنا تكون العمليه قد تمت بنجاح , فيقوم المستقبل باستمرار بالتنصت على البورت , منتظراً اية بيانات جديده من المرسل

وفي التطبيق المدرج مع المقاله , تم عمل المستقبل والمرسل في برنامج واحد , حيث كل ما عليك هو ان تضع IP لجهاز على الشبكه ويكون نفس البرنامج لدى الشخص الاخر , ويقوم هو بوضع ال IP الخاص بك , لتقوموا بارسال واستقبال النصوص من خلال البرنامج , وعندما تقوم بوضع ال IP الخاص بك لديك في برنامجك , فسوف ترسل وتستقبل من نفسك , اي سيقوم البرنامج بالارسال الى جهازك , ويقوم جهازك بالاستقبال من نفسه ( ده لو ملقتش حد يكلمك يعني )
ختـــام
قد يكون المقال او التطبيق بسيط جداً , ولكنه مفيد في عملية البدء في مجال برمجة الشبكات , فكما قلنا هو مجال كبير ومتشعب , وسوف احاول البحث في ذلك الموضوع , وسأوافيكم بالجديد ان شاء الله
تحميل المشروع
 Written by :  Mohammed Mahmoud
الفئة: سي شارب | أضاف: ham_mody2000 (2011-09-08 6:01 AM)
مشاهده: 1975 | الترتيب: 0.0/0


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

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

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

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

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