17-09-12, 09:59 PM
الدرس الثاني
ثانيا:ً برمجة الإتصال العكسي ( من الخادم إلى العميل ) :
الإتصال العكسي هو جعل الخادم يتصل بالعميل .
العميل : ثانيا:ً برمجة الإتصال العكسي ( من الخادم إلى العميل ) :
الإتصال العكسي هو جعل الخادم يتصل بالعميل .
في برنامج العميل نحتاج للأدوات التالية :
أداة الوينسوك .
صندوق نص واحد ( للمنفذ ) .
تايمر ( Interval = 1 ) .
ليبل .
النص البرمجي :
في كود تحميل الفورم :
PHP كود :
Winsock1.Close
Winsock1.LocalPort = Text1.Text
Winsock1.Listen
• إجعل المنفذ ( 303 ) .
حيث إنه يتم إغلاق جميع الإتصالات ، ويتم تحديد منفذ الإتصال والإنصات ، وبعدها يتم أمر الإنصات عبر المنفذ المحدد .
في الحدث Connection_Request للوينسوك :
PHP كود :
On Error Resume Next
Winsock1.Close
Winsock1.Accept requestID
تم الإنتهاء من برنامج العميل
ونقوم بوضع كود فحص حالة الوينسوك في التايمر .
الخادم :
في الخادم نحتاج للأدوات التالية :
أداة الوينسوك .
تايمر ( Interval = 3000 ) .
2 صندوق نص الأول لعنوان الأي بي والآخر للمنفذ .
يكون عنوان الأي بي إفتراضيا أيضا وهو 127.0.0.1 والمنفذ 303 كما تم تحديده في العميل .
النص البرمجي :
في المؤقت Timer : قمنا بجعل الخاصية ( Interval = 3000 ) لكي يقوم بتجربة الإتصال كل 3 ثواني .
PHP كود :
If Text1.Text = "" Or Text2.Text = "" Then Exit Sub
If Winsock1.State = sckConnected Then Exit Sub
Winsock1.Close
Winsock1.Connect Text1.Text, Text2.Text
يقوم التايمر بفحص القيم والحالات في صندوقي النص Text1 , Text2 وفي الوينسوك حسب الحالات التالية :
إقتباس : إذا كان كلاهما فارغاً أو أحدهما فارغ ، فإنه لا يقوم بأي مهمة .
إذا كانت الوينسوك في حالة إتصال فإنه لا يقوم بأي مهمة .
وإن كانت الشروط مخالفة لجمل الشرط ، فيقوم التايمر بإغلاق الوينسوك ( إغلاق الإتصالات الحالية ) ، وإجراء إتصال جديد .
تم الإنتهاء من الخادم .
تستطيع الآن تجربة البرنامج وفحص الإتصال .
يتبع .....
متغيب

