بسم الله الرحمن الرحيم
نبدأ ان شاء الله طريقنا في هذا المجال ليس كاختيار لموضوع طرح من قبل وانما لان هذا الموضوع
يشمل رؤية جديدة للبرمجة على NET تختلف كثيرا عن ما رأيناه من قبل عند استعمالنا للوينسوك
في مثل هذه التطبيقات فالفئة المستعملة أو فضاء الأسماء الذي سيوفر لنا كل المتغيرات التي نحتاجها
لعمل برنامجنا هي Sockets
System.Net.Sockets
لن أطيل كثيرا عليكم لذلك سأحاول أن يكون الشرح مبسط كثيرا
نبدأ مع برنامج الخادم :
طبعا ان استعمال فضاء الأسماء Sockets لن يكون بالشكل السابق وانما نكتب
Imports System.Net.Sockets
نقوم بتعريف المتغيرات التي سنستعملها
في برنامجنا وهي
serv من النوع TcpListener يقوم بالاستماع كما يدل اسمه
client من النوع TcpClient يؤمن الاتصال بجهاز العميل
listenerThread هو عبارة عن ثريد يقوم بتنفيذ عملية استماع الخادم فقط
Private serv As TcpListener Private client As TcpClient Private listenerThread As Threading.Thread
تهيئة الخادم:
لن أتحدث كثيرا عن تعدد المهام هنا لكن فقط أقول أنه أصبح استعماله سهلا بعد أن
وفرت لنا الNET الفئة Threading ,
نقوم بربط ثريد بإجراء يشغل الخادم ويقوم بانتظار اتصال من العميل ثم نشغل هذا الثريد
listenerThread = New Threading.Thread(AddressOf DoListen) listenerThread.Start()
الإجراء
DoListen يقوم كما قلنا بتشغيل الخادم ولتشغيله نحتاج لمعرفة LocalEP و المنفذ
ولأننا سننشئ خادم فان الIP الذي سنستعمله سيكون محلي System.Net.IPAddress.Any
وكمثال نستعمل المنفذ 1000
عند اجراء اتصال بالخادم نقوم باسناد متغير من النوع TcpClient ليقوم بالتقاط الرسائل من العميل
Private Sub DoListen()
Try
serv = New TcpListener (System.Net.IPAddress.Any,1000)
serv.Start()
Do
client = serv.AcceptTcpClient ()
MsgBox ("تم اتصال العميل بنجاح")
Loop Until False
Catch
End Try
End Subلا تنسى أن توقف الخادم عند اغلاق البرنامج في الحدث Form1_Closing
serv.Stop()
برنامج العميل :
تهيئة العميل :
في برنامج آخر نقوم بانشاء متغير يقوم بالاتصال من النوع TcpClient بعد استدعاء فضاء الأسماء Sockets
طبعا
Private client As TcpClient
وفي زر الاتصال نكتب:
Try
client = New TcpClient("127.0.01", 1000)
MsgBox("تم الاتصال بنجاح")
Catch
MsgBox("الخادم غير متوفر الآن")
End Try



