Information Technology Center
أهلا ومرحبا بسيادتكم في منتدانا ومنتداكم منتدي مركز تقنية المعلومات نرجو ان تستفيدوا وأن تكون بداية لإنضمامكم لنا و عسي أن تسفيدوا بما لدينا وتفيدونا بما لديكم

Information Technology Center

منتدي مركز تقنية المعلومات (كل ما يخص التكنولوجيا والكمبيوتر)
 
الرئيسيةبوابه المنتدياليوميةس .و .جبحـثالأعضاءالمجموعاتالتسجيلدخول
بحـث
 
 

نتائج البحث
 
Rechercher بحث متقدم
المواضيع الأخيرة
» احسن تعليم موجود علي النت لبرنامج Autidesk 3d max 2011
الأحد مايو 03, 2015 11:15 pm من طرف abdulrhmsn.salam

» برنامج الأذان لجوال نوكيا الجيل الخامس
الخميس أكتوبر 11, 2012 11:15 am من طرف nadia8077

» حل مشاكل المزرعة السعيدة ... هكر بالشرح الكامل
السبت يونيو 09, 2012 3:57 pm من طرف Master_Mido

» دورة كاملة من أقوي الشركات الرائده في التعليم في Adobe fireworks
الجمعة أكتوبر 21, 2011 5:08 pm من طرف Master_Mido

» برنامج بالتوك جنان
الإثنين أغسطس 22, 2011 11:52 pm من طرف Master_Mido

» برنامج ريل بلير مسلي جدا
الإثنين أغسطس 22, 2011 11:51 pm من طرف Master_Mido

» برنامج الاذان للكمبيوتر هايل
الأحد يوليو 31, 2011 10:49 pm من طرف Master_Mido

» برنامج تحميل افلام من النت جوهري
الأحد يوليو 31, 2011 10:48 pm من طرف Master_Mido

» أقوي اسطوانة صيانة في التاريخ
الإثنين يوليو 18, 2011 6:01 pm من طرف Master_Mido

تسجيل صفحاتك المفضلة في مواقع خارجية
تسجيل صفحاتك المفضلة في مواقع خارجية Digg  تسجيل صفحاتك المفضلة في مواقع خارجية Delicious  تسجيل صفحاتك المفضلة في مواقع خارجية Reddit  تسجيل صفحاتك المفضلة في مواقع خارجية Stumbleupon  تسجيل صفحاتك المفضلة في مواقع خارجية Slashdot  تسجيل صفحاتك المفضلة في مواقع خارجية Yahoo  تسجيل صفحاتك المفضلة في مواقع خارجية Google  تسجيل صفحاتك المفضلة في مواقع خارجية Blinklist  تسجيل صفحاتك المفضلة في مواقع خارجية Blogmarks  تسجيل صفحاتك المفضلة في مواقع خارجية Technorati  

قم بحفض و مشاطرة الرابط Information Technology Center على موقع حفض الصفحات

قم بحفض و مشاطرة الرابط Information Technology Center على موقع حفض الصفحات
سحابة الكلمات الدلالية
سؤال و جواب في الاسلام
Viewers

شاطر | 
 

 مقدمة إلى ربط الأجهزة على الشبكات من خلال Sokets

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل 
كاتب الموضوعرسالة
TheManager
نائب رئيس مجلس الإدارة
نائب رئيس مجلس الإدارة
avatar

عدد المساهمات : 25
نقاط : 56885
السٌّمعَة : 0
تاريخ التسجيل : 25/05/2010
العمر : 34
الموقع : eng.freevar.com

بطاقة الشخصية
صنع في :.....:
المود ايه (توداي): عايش وخلاص

مُساهمةموضوع: مقدمة إلى ربط الأجهزة على الشبكات من خلال Sokets   الثلاثاء مايو 25, 2010 7:14 pm

بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .

أصبح من أكثر التطبيقات المطلوبة شيوعاً هي التطبيقات التي تعمل على شبكة Network أو التطبيقات التي تتطلب ارسال البيانات من جهاز إلى آخر ، سواء أكان ذلك في برامج متخصصة مثل برامج Messenger أو كجزء من برامج عادية كبرامج لإدارة الشركات على شبكة .

ولتطبيق هذه الحالة يتم اللجوء لما يسمى بال Sockets ، ولمستخدمي فيجوال بيسك فقد كانت هناك أداة اسمها Winsock تقوم باستخدام هذه ال Sockets ، وفي .net سوف نقوم بالتعامل مباشرة مع المجال System.Net.Sockets .

وقبل البدء ، ففي مثالنا هذا سوف نتعامل مع Server (خادم) و Client (عميل) حيث يقوم الخادم بانتظار البيانات من العميل . ولكن قبل أن تتم هذه العملية فلا بد أولاً من التعرف على الخادم والعميل ، ويتم ذلك عبر ال IP الخاص بهما ، وفي حالة كونك تجرب المثال على جهازك الشخصي فإن ال IP لكل من السيرفر والعميل سيكون : 127.0.0.1 .

النقطة الأخرى التي لا بد من الاتفاق عليها هو رقم المنفذ ، ورقم المنفذ هو رقم Integer مع مراعاة انه في العادة فإن الأرقام الأولى يتم استخدامها من قبل نظام التشغيل .

في دورسنا هذه سوف نتعلم كيفية عمل Client مع Blocking ومن ثم سوف نواصل لنتعلم كيفية عمل ال Server مع Non-Blocking .

وسأحاول خلال الشرح الالتزام بالشرح بكل من C# و VB.net حيث سأوزع الكود بينهما وأتمنى أن يكون ذلك أيضاً بالنسبة للمرفقات . وأخيراً هناك الدرس المثبت في القسم والخاص بكيفية التحويل من C# إلى VB.net والعكس .

والآن خطوتنا الأولى هي رسم الشاشة ، حيث سنقوم بوضع مربعي نص واحد لرقم ال IP والذي سيكون 127.0.0.1 في حالة التجربة ، والآخر من أجل رقم المنفذ والذي سنفترض انه سيكون 10500 .
مربع نص ثالث مع زر أمر خاص بارسال البيانات ، ورابع مع زر أمر خاص بانتظار البرنامج حتى وجود بيانات تتم قرائتها حيث يقوم بالقراءة كل مدة معينة مبدئياً ، ولاحقاً سوف نتعرف على المشكلة من هذا النوع ونقوم بعمل حل بديل في الدروس القادمة ، وسوف نتعرف على جميع هذه العمليات تفصيلاً بإذن الله .

خطوتنا الأولى هي اضافة المكتبات التي نريد ، وكمبرمج فيجوال بيسك سوف تكتب السطر التالي :
رمز:

Imports System.Net.Sockets

أما إذا كنت مبرمج سي شارب فستقوم بكتابة الأمر التالي :
رمز:

using System.Net.Sockets;

الخطوة التالية هي تعريف متغير للسوكتس بالشكل التالي لمبرمج السي شارب :

رمز:

m_socListener = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);

أما لمبرمج VB.net فقم فقط بازالة ال ; من آخر السطر

وقبل ذلك لا بد من تعريف نسخة m_socListener حيث يتم تعريفها في Gerneral في فيجوال بيسك بالشكل التالي :

رمز:
Dim m_socListener As Socket
أما في C# فقط قم بكتابة :

رمز:

Socket m_socListener

والآن إلى شرح الكود السابق :
في البارميتر الأول قمنا بتحديد نوع ال Adressing الذي سنقوم باستخدامه وهو InterNetwork وهو الخاص ب IP v4 ، وستجد رموزاً أخرى لأنواع مختلفة مثل AppleTalk .
البارمتير الثاني قمنا بتحديد نوع ال Sockets الذي نرغب في استخدامه وهو الذي يعتمد على مبدأ Streaming وأخيراً في البارميتر الثالث قمنا بتحديد نوع البروتوكول المستخدم والذي سيكون TCP/IP .
الخطوة الثانية هي بدء ربط هذا الكائن ، والذي سنحتاج في هذه الحالة إلى معرفة ال IP ورقم المنفذ Port وهو ما يوفره لنا النوع IPEndPoint والذي يمكن استخدامه بالشكل التالي - لو كنت مبرمج C# - :

رمز:

System.Net.IPAddress ipAdd = System.Net.IPAddress.Parse(TextBox1.Text);
System.Net.IPEndPoint remoteEP = new System.Net.IPEndPoint (iAdd,Convert.ToInt16(TextBox2.Text);
m_socListener.Connect (remoteEP);

مبرمج VB.net ؟؟؟ إليك هذا الأمر :

رمز:
Dim ipAdd As System.Net.IPAddress = System.Net.IPAddress.Parse(TextBox1.Text)
Dim remoteEP As System.Net.IPEndPoint = New System.Net.IPEndPoint(ipAdd, Convert.ToInt16(TextBox2.Text))
m_socListener.Connect(remoteEP)

والآن ننتقل إلى خطوة أخرى ، وهي اقتناص الأخطاء ، حيث أن الأخطاء التي يمكن أن تنتج عن هذا الكود كثيرة جداً ، لذلك سوف نستخدم try-catch ، وهكذا يصبح الكود في حالة VB.net :

رمز:

Try

m_socListener = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
Dim ipAdd As System.Net.IPAddress = System.Net.IPAddress.Parse(TextBox1.Text)
Dim remoteEP As System.Net.IPEndPoint = New System.Net.IPEndPoint(ipAdd, Convert.ToInt16(TextBox2.Text))
m_socListener.Connect(remoteEP)
Catch ex As SocketException
MessageBox.Show(ex.Message)
End Try

أما في حالة C# فسيكون بالشكل التالي :

رمز:
try
{
System.Net.IPAddress ipAdd = System.Net.IPAddress.Parse(TextBox1.Text);
System.Net.IPEndPoint remoteEP = new System.Net.IPEndPoint (iAdd,Convert.ToInt16(TextBox2.Text);
m_socListener.Connect (remoteEP);
}
catch(SocketException se)
{
MessageBox.Show ( se.Message );
}

والآن نعود لبدء أوامر ارسال البيانات ، وسنبدأ ببيانات تجريبية نرسلها خلال أمر Connect وذلك من خلال C# :

رمز:

String szData = "Hello There";
byte[] byData = System.Text.Encoding.ASCII.GetBytes(szData);
m_socListener.Send(byData);

ومن خلال VB.net :
رمز:

Dim szData As String = "Hello There"
Dim byData() As Byte = System.Text.Encoding.ASCII.GetBytes(szData)
m_socListener.Send(byData)

إلى هنا نكون قد انتهينا من أمر Connect ، والآن سننتقل سريعاً إلى أمر اغلاق الاتصال بالشكل التالي :

رمز:

m_socListener.Close ()

وكما اتفقنا اضف ; فقط إذا كنت ترغب في أن تعمل من خلال C# .

نكتفي بهذا القدر في هذا الدرس ، ونعود للمواصلة مع ارسال البيانات في درس قادم .

والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://eng.freevar.com
Master_Mido
Administration
Administration
avatar

عدد المساهمات : 443
نقاط : 66090
السٌّمعَة : 95
تاريخ التسجيل : 25/04/2010
العمر : 29
الموقع : http://i-t-center.ahlamontada.com

بطاقة الشخصية
صنع في :.....: بلجاي
المود ايه (توداي): عاشق ولهان

مُساهمةموضوع: رد: مقدمة إلى ربط الأجهزة على الشبكات من خلال Sokets   الأربعاء مايو 26, 2010 2:03 am

جامد جدا الحوار دا
في انتظار باقي الدروس يا بشمهندس

_________________________________

ما هو المستحيل ؟!







"إن الله لا يغير ما بقوم حتي يغيروا ما بأنفسهم"

راقب أفكارك لأنها ستصبح كلمات
وراقب كلماتك لأنها ستصبح أفعال
وراقب أفعالك لأنها ستصبح عادات
وراقب عاداتك لأنها ستصبح شخصية
وراقب شخصيتك لأنها ستحدد مصيرك
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://i-t-center.ahlamontada.com
TheManager
نائب رئيس مجلس الإدارة
نائب رئيس مجلس الإدارة
avatar

عدد المساهمات : 25
نقاط : 56885
السٌّمعَة : 0
تاريخ التسجيل : 25/05/2010
العمر : 34
الموقع : eng.freevar.com

بطاقة الشخصية
صنع في :.....:
المود ايه (توداي): عايش وخلاص

مُساهمةموضوع: رد: مقدمة إلى ربط الأجهزة على الشبكات من خلال Sokets   الأربعاء مايو 26, 2010 6:16 am

مرسى على المرور يا باشا وان شاء الله فية دروس تانية كتيرة
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://eng.freevar.com
 
مقدمة إلى ربط الأجهزة على الشبكات من خلال Sokets
استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
Information Technology Center :: القسم التكنولوجي :: البرمجة-
انتقل الى: