ربما أعجبتك الوظائف القوية والتكنولوجيا المتقدمة لبرامج تطبيقات الإنترنت مثل متصفح IE من Microsoft. ربما لم تكن قادرًا بعد على تطوير مثل هذا النظام المعقد واسع النطاق، ولكن لا تقلق، هنا يمكن أن يمنحك فرصة التدريب على ذلك هو تعلم استخدام Winsocket الخاص بـ Delphi لكتابة التطبيقات المستندة إلى TCP/ip. ومن المفترض أنك على دراية بأدوات تطوير Delphi.
يمكننا أن نتخيل أنه إذا قمت بكتابة برنامج للتواصل مع جهاز كمبيوتر بعيد منذ البداية، فيجب أن يكون لديك معرفة شاملة وإتقان لبروتوكولات الشبكة ذات الصلة، والمعرفة الأساسية بالنظام، وبرامج الشبكة وتكنولوجيا الأجهزة لا يمكن تحقيقها إلا في فترة زمنية قصيرة، وهي ليست مهمة سهلة بالنسبة لمعظم الناس.
ولحسن الحظ، توفر لنا مكتبة مكونات شبكة دلفي مكونات لتنفيذ اتصالات الشبكة، والتي تتضمن تفاصيل التنفيذ المعقدة. تسمح لنا مكونات ClientSocket وServerSocket بكتابة برامج اتصالات الشبكة ومشاركة الموارد الخاصة بنا بسهولة.
خطوات كتابة برامج Winsocket في دلفي 4.0 هي كما يلي:
1) إعدادات خاصية مكون Winsocket؛
2) إنشاء اتصال مع الكمبيوتر البعيد؛
3) نقل البيانات بين أجهزة الكمبيوتر.
يتم شرح هذه الخطوات الثلاث بالتفصيل أدناه.
واحد. تحديد خصائص Winsocket
في دلفي 4.0، تم تقسيم Winsocket إلى مكونين: ClientSocket وServerSocket. وهي بمثابة مكونات من جانب العميل والخادم على التوالي. أي أنه يتم استخدام مكون ClientSocket في برنامج العميل، ويتم استخدام مكون ServerSocket على جانب الخادم. من خلال الاتصال بين هذين المكونين، إلى جانب رمز التطبيق المساعد، يمكن تنفيذ برنامج اتصال بسيط. بالطبع، إذا تم إدخال ServerSocket في برنامج العميل، فيمكن لبرنامج العميل أن يعمل كخادم ويستجيب للطلبات الواردة من برامج العميل الأخرى.
إذا كنت تكتب برنامجًا من جانب الخادم، فيجب عليك تعيين خاصية المنفذ لمكون ServerSocket. السبب وراء تعيين هذه المعلمة هو أنه قد يكون هناك العديد من برامج الخادم التي تعمل على نفس الكمبيوتر، وقد تقبل باستمرار طلبات الاتصال من برامج العميل البعيد. إذا كنت تحاول إرسال بريد إلكتروني وقام النظام بربط طلبك ببرنامج خادم آخر، فبالتأكيد لن يتم إرسال بريدك الإلكتروني بشكل صحيح. لذلك، يجب تعيين رقم منفذ مناسب لمكون ServerSocket على برنامج الخادم. يمكنك أيضًا تعيين سمة الخدمة، والتي تشير إلى نوع الخدمة التي يقدمها ServerSocket، مثل: FTP، HTTP، إلخ. ثم قم بتعيين الخاصية النشطة إلى True.
إذا كنت تكتب برنامج عميل، فهناك المزيد من الخصائص لتعيين مكون ClientServer. يجب تعيين سمة المنفذ لتكون متسقة مع قيمة سمة المنفذ على جانب الخادم. بالإضافة إلى ذلك، يجب تعيين خاصية المضيف بشكل صحيح وهي خاصية للقراءة فقط وهي غير متوفرة في وقت التصميم. يشير إلى اسم المضيف للخادم البعيد الذي يريد برنامج العميل الاتصال به. يمكنك أيضًا تعيين سمة العنوان، وهي عنوان IP الخاص بالمضيف البعيد. إذا تم تعيين السمتين، فسيستخدم النظام سمة المضيف، وسيصبح عنوان IP الذي تم تعيينه بواسطة سمة العنوان غير صالح.
اثنين. إنشاء اتصال بجهاز كمبيوتر بعيد
لنقل البيانات بين أنظمة الكمبيوتر البعيدة، يجب أولاً إنشاء اتصال بين المضيفين المتصلين.
يستدعي مكون ServerSocket على جانب الخادم الأسلوب Open لتهيئة اتصال مأخذ التوصيل، وفي الوقت نفسه، يقوم بتعيين السمة النشطة على True، وتعيين مكون ServerSocket على وضع الاستماع، ويكتشف ما إذا كان هناك طلب اتصال في أي وقت.
إذا قبل الخادم طلب الاتصال من برنامج العميل، فسيتم تشغيل حدث OnAccept، والكود التالي هو ما يجب على برنامج الخادم القيام به بعد قبول الاتصال.
PROcedure Myform..ServerSocketAccept(Sender: TObject, المقبس: TCustomWinSocket);
يبدأ
IsServer := صحيح؛
نهاية؛
في برنامج العميل، يقوم مكون ClientSocket بتعيين الخصائص الضرورية مثل المنفذ والمضيف، ثم يقوم بتعيين الخاصية النشطة إلى True لتقديم طلب اتصال.
ثلاثة. نقل البيانات بين أجهزة الكمبيوتر
بمجرد أن يقبل الخادم طلب الاتصال من العميل، يمكن للعميل إرسال البيانات. في هذا الوقت، يوجد مقبس بين العميل والخادم، ويتم الاتصال من خلال هذا المقبس. لذلك، تعد سمة المقبس مهمة جدًا، ولها العديد من الطرق، حيث يمكنك إرسال واستقبال البيانات باستخدام بعض الطرق البسيطة.
يستخدم جانب العميل النموذج التالي: ClientSocket1.socket.sendtext('السلسلة التي تريد إرسالها');
من جانب الخادم، يأخذ الشكل التالي: ServerSocket1.socket.recievetext(str: string); ترجع هذه الدالة طول السلسلة المستلمة وتخزن السلسلة في المتغير str.
ما ورد أعلاه هو أبسط مثال على نقل البيانات، ويمكنك أيضًا استخدام طرق أخرى توفرها خاصية المقبس لتنفيذ نقل البيانات المعقدة.
على الرغم من أنه من السهل جدًا استخدام مكون Winsocket في Delphi 4.0، إلا أنه إذا كنت تريد أن تكون ماهرًا حقًا في استخدامه لتطوير تطبيقات الشبكة، فيجب عليك قراءة ملفات المساعدة ونماذج البرامج بعناية. قارن مميزات هذه الطريقة في التعلم المستمر، وأتقن ميزات برمجتها، ثم أتقن مهارات برمجة مكونات الشبكة الأخرى المتوفرة في دلفي، مثل: NMPOP3، NMUDP، NMFTP، إلخ. بحلول ذلك الوقت، ستكون لديك القدرة على المشاركة في تطوير تطبيقات الشبكة الحقيقية، بدلاً من مجرد أخذ برامج تطبيقات الشبكة الخاصة بأشخاص آخرين وإعدادها وتشغيلها بمهارة.