برمجة المقبس في Java: دليل موجز

نشرت: 2022-05-21

في Java ، تعد برمجة المقبس وسيلة للتواصل عبر البرامج والبقاء على اتصال بمختلف JREs - كل من الخوادم الموجهة للاتصال والخوادم غير الموجهة للاتصال. يتم استخدام مقبس خادم Java حصريًا لبدء الاتصال بين الخادم والعميل ومعالجته.

ستغطي هذه المدونة كل ما يمكن معرفته حول برمجة المقابس.

جدول المحتويات

برمجة المقبس بجافا

برمجة المقبس هي عملية استكمال واستخدام عقد شبكة منفصلة بطريقة تفاعلية. إنه نظام اتصال ثنائي الاتجاه يستمع فيه مقبس واحد (عقدة) إلى منفذ معين على عنوان IP بينما يتصل المقبس الآخر.

مآخذ في جافا

في Java ، المقابس هي أحد طرفي قناة الاتصال ثنائية الاتجاه التي تربط برنامجين متصلين بالشبكة. تُستخدم طبقة TCP لتعيين رقم منفذ لمقبس Java المحدد لتحديد التطبيق الذي نقوم بنقل البيانات إليه. نستخدم مزيجًا من عنوان IP ورقم منفذ لإنشاء نقطة نهاية.

يشتمل نظام Java الأساسي على فئة تسمى Socket ، والتي تنفذ جانبًا واحدًا من اتصال شبكة ثنائي الاتجاه بين تطبيق Java الخاص بك وبرنامج آخر. يجلس الفصل فوق تطبيق مستقل عن النظام الأساسي ، مما يحمي برنامج Java الخاص بك من التفاصيل الخاصة بالنظام.

باستخدام الفئة بدلاً من رمز أصلي معين ، قد تتواصل برامج Java عبر الشبكة بطريقة مستقلة عن النظام الأساسي.

بالإضافة إلى ذلك ، يشتمل java.net على فئة ServerSocket ، والتي تنفذ مقبسًا يمكن للخوادم استخدامه للاستماع إلى الاتصالات وقبولها من العملاء. هذا مثال يوضح كيفية استخدام فئات ServerSocket و Socket.

بين المنفذ من جانب العميل والمنفذ من جانب الخادم ، يتم إنشاء اتصال.

إنشاء اتصال Java Socket [CLIENT SIDE]

قبل متابعة البرمجة من جانب العميل ، يجب على العميل انتظار بدء الخادم. بمجرد تشغيله ، سيبدأ في إرسال الاستعلامات إلى خادم Java. سينتظر العميل بعد ذلك استجابة الخادم. هذا ملخص جيد لمنطق اتصال الخادم العميل.

دعونا ننظر في البرمجة من جانب العميل بمزيد من التفصيل.

للاتصال بجهاز آخر ، ستحتاج إلى اتصال بمقبس. يجب أن يعرف جهازي الكمبيوتر مكان وجودهما على الشبكة (عنوان IP) ومنافذ TCP التي يستخدمونها لإنشاء اتصال مقبس. يشير إطار عمل java.net إلى فئة المقبس.

عنوان IP للخادم هو وسيطة الإدخال الأولى. منفذ TCP هو المعلمة التالية هنا. (إنه ليس أكثر من رقم يخبر البرنامج الذي يجب أن يبدأ على الخادم.) HTTP ، على سبيل المثال ، يستخدم المنفذ 80. عادةً ما يتراوح نطاق أرقام المنافذ من 0 إلى 65535.

الاتصالات

يتم استخدام التدفقات لإدخال البيانات وإخراجها عند الاتصال عبر اتصال مقبس. بعد إرسال الطلبات وإنشاء اتصال قوي ، يجب إغلاق اتصال المقبس.

إغلاق اتصال Java Server Socket

تم إغلاق اتصال المقبس بشكل صريح بعد إرسال الرسالة إلى الخادم ، ويتم إغلاق اتصال المقبس بشكل صريح.

// برنامج جافا التجريبي للعملاء

استيراد java.net. * ؛

استيراد java.io. * ؛

فئة عامة Client_Side_Program

{

// لتهيئة تدفقات المقبس وتدفقات الإدخال وتدفقات الإخراج

مأخذ توصيل خاص = فارغ ؛

إدخال DataInputStream الخاص = فارغ ؛

DataOutputStream out الخاص = فارغ ؛

// المُنشئ لوضع منفذ TCP وعنوان IP

العميل العام (سلسلة إضافة ، منفذ int)

{

// إنشاء اتصال

محاولة

{

المقبس = مقبس جديد (إضافة ، منفذ) ؛

System.out.println ("متصل") ؛

// يأخذ المدخلات من المحطة

الإدخال = الجديد DataInputStream (System.in) ؛

// يرسل الإخراج إلى المقبس

out = new DataOutputStream (socket.getOutputStream ()) ؛

}

catch (UnknownHostException u)

{

System.out.println (u) ؛

}

القبض (IOException i)

{

System.out.println (i) ؛

}

// سلسلة لقراءة الرسالة من الإدخال

خط السلسلة = "" ؛

// استمر في القراءة حتى يتم إدخال "Over"

while (! line.equals ("Over"))

{

محاولة

{

line = input.readLine () ؛

out.writeUTF (سطر) ؛

}

القبض (IOException i)

{

System.out.println (i) ؛

}

}

// أغلق الاتصال

محاولة

{

input.close () ؛

out.close () ؛

socket.close () ؛

}

القبض (IOException i)

{

System.out.println (i) ؛

}

}

الرئيسية العامة الثابتة الفراغ (سلاسل سلسلة [])

{

عميل العميل = عميل جديد ("127.0.0.1" ، 5000) ؛

}

}

لزيارة مصدر هذا الكود ، انقر هنا .

إنشاء اتصال Java Socket [SERVER SIDE]

يقوم الخادم بإنشاء الكائن الخاص به وينتظر طلب العميل أثناء النظر في اتصال جانب مأخذ توصيل خادم Java. سيتفاعل الخادم مع العميل بمجرد إرسال الطلب. ستحتاج إلى مآخذ توصيل لتشفير التطبيق من جانب الخادم ، وهو على النحو التالي - عندما يقوم العميل بإنشاء Socket () جديد ، يتم إنشاء ServerSocket لانتظار طلبات العميل. يمكن تعريف المقبس البسيط على أنه برنامج يبدأ الاتصال من جانب الخادم مع العميل. يمكنك توصيل الردود مع العميل وفقًا لذلك ، بمجرد الحصول على التقرير من اتصال مأخذ توصيل java من جانب الخادم.

الاتصالات

لاستخدام المقبس لإرسال الإخراج ، نتطلع عمومًا إلى استخدام طريقة getOutputStream ().

إغلاق اتصال Java Server Socket

من الأهمية بمكان إنهاء الاتصال عن طريق إيقاف تشغيل كل من المقبس وتدفقات الإدخال والإخراج.

// A Server برنامج جافا

استيراد java.net. * ؛

استيراد java.io. * ؛

خادم الطبقة العامة

{

// تهيئة المقبس ودفق الإدخال

مأخذ توصيل خاص = فارغ ؛

خادم ServerSocket خاص = فارغ ؛

DataInputStream الخاص في = فارغ ؛

// منشئ مع منفذ

الخادم العام (منفذ int)

{

// ينتظر الاتصال بعد بدء الخادم

محاولة

{

الخادم = ServerSocket جديد (منفذ) ؛

System.out.println ("الخادم: بدأ") ؛

System.out.println ("في انتظار وصول العميل ...") ؛

المقبس = server.accept () ؛

System.out.println ("تم قبول العميل") ؛

// لأخذ مدخلات مقبس العميل

في = جديد DataInputStream (

جديد BufferedInputStream (socket.getInputStream ())) ؛

خط السلسلة = "" ؛

// لقراءة الرسالة من العميل حتى يتم إرسال "انتهى"

while (! line.equals ("Over"))

{

محاولة

{

line = in.readUTF () ؛

System.out.println (خط) ؛

}

القبض (IOException i)

{

System.out.println (i) ؛

}

}

System.out.println ("إغلاق الاتصال") ؛

// اغلق الاتصال

socket.close () ؛

in.close () ؛

}

القبض (IOException i)

{

System.out.println (i) ؛

}

}

الرئيسية العامة الثابتة الفراغ (سلاسل سلسلة [])

{

خادم الخادم = خادم جديد (5000) ؛

}

}

للتحقق من تفاصيل هذا الرمز ، انقر هنا .

يمكنك تشغيل البرنامج من جانب الخادم أولاً بعد تكوين نهايتي العميل والخادم. بعد ذلك ، يجب عليك تنفيذ البرنامج من جانب العميل وإرسال الطلب. سيتفاعل الخادم فورًا عندما يأتي الطلب من طرف العميل.

استكشف دوراتنا التدريبية الشهيرة في هندسة البرمجيات

SL. رقم برامج تطوير البرمجيات
1 ماجستير العلوم في علوم الكمبيوتر من جامعة جون مورس بليفربول و IIITB برنامج شهادة الأمن السيبراني من معهد كاليفورنيا للتكنولوجيا CTME
2 برنامج تدريب تطوير المكدس الكامل برنامج PG في Blockchain
3 برنامج الدراسات العليا التنفيذية في تطوير البرمجيات - تخصص في DevOps عرض جميع دورات هندسة البرمجيات

تشغيل المحطة الطرفية أو موجه الأوامر

لبدء Terminal أو موجه الأوامر ، سنستخدم الأوامر التالية. بادئ ذي بدء ، سننشئ نافذتين ، إحداهما مخصصة للخادم والأخرى للعميل.

  1. دع برنامج الخادم يبدأ في العمل.

خادم جافا $

  1. بعد ذلك ، في محطة طرفية مختلفة ، قم بتشغيل تطبيق العميل كما يلي ،

عميل جافا $

سيعرض البرنامج "متصل" و "قبول العميل" لأن الخادم يقبل العميل.

  1. في مربع العميل ، يمكنك بعد ذلك البدء في إدخال الرسائل. فيما يلي مثال على إدخال العميل.

أهلاً! هذا يمثل أول اتصال مقبس احترافي.

الذي يحصل عليه الخادم ويعرضه في نفس الوقت

أهلاً! هذا يمثل أول اتصال مقبس احترافي.

على.

إغلاق الاتصال

كما ذكرنا سابقًا ، يؤدي إرسال "Over" إلى إنهاء الاتصال بين العميل والخادم.

اقرأ مقالاتنا الشهيرة المتعلقة بتطوير البرمجيات

كيف يتم تنفيذ تجريد البيانات في Java؟ ما هي الطبقة الداخلية في جافا؟ معرفات Java: التعريف والنحو والأمثلة
فهم التغليف في OOPS بأمثلة شرح حجج سطر الأوامر في لغة سي أهم 10 ميزات وخصائص للحوسبة السحابية في عام 2022
تعدد الأشكال في جافا: المفاهيم والأنواع والخصائص والأمثلة الحزم في Java وكيفية استخدامها؟ برنامج Git التعليمي للمبتدئين: تعلم Git من الصفر

استنتاج

تعد برمجة Java Socket أداة أساسية تستمر باستخدام واجهات برمجة تطبيقات مأخذ التوصيل لإنشاء اتصال بين تطبيقات خادم العميل المحلية والبعيدة. يمكن للمعرفة الصحيحة ببرمجة المقبس تحسين اتصالات الخادم والعميل جيئة وذهابا.

إذا كنت تتطلع إلى تعلم Java وإتقان التطوير الكامل ، فلدينا الدورة التدريبية عالية التأثير لك: برنامج upGrad's Executive PG في تطوير البرمجيات - التخصص في تطوير المكدس الكامل .

تم تصميم برنامج 13 شهرًا من IIIT-B لمساعدة الطلاب على اكتساب مهارات مثل أساسيات علوم الكمبيوتر وعمليات تطوير البرامج وواجهات برمجة التطبيقات الخلفية وواجهة مستخدم الويب التفاعلية. يمكنك الوصول إلى برنامج Bootcamp للانتقال الوظيفي للبرامج لكل من المبرمجين غير التقنيين والجدد لصقل مهارات البرمجة لديهم ودعم وظيفي 360 درجة من upGrad.

تعلم دورات تطوير البرمجيات عبر الإنترنت من أفضل الجامعات في العالم. اربح برامج PG التنفيذية أو برامج الشهادات المتقدمة أو برامج الماجستير لتتبع حياتك المهنية بشكل سريع.

ما هي فوائد تعلم برمجة Java socket؟

يمكن استخدام المآخذ لإنشاء تطبيق خادم العميل ، مثل الدردشة ، من وجهة نظر الشبكات. يتم تنفيذ المقابس على أبسط مستوى من الأمان لاكتشاف ما إذا كانت منافذ النظام مفتوحة ، وما إذا كانت هناك برامج ماسحة ضوئية قياسية للمنافذ مثل Nmap وما إذا كان يمكن استخدامها على مستوى منخفض. يمكن استخدامها بنفس طريقة استخدام الأمر SSH - Secure Socket Shell للاتصال بخادم خارجي عبر غلاف عكسي.

ماذا تفعل وظيفة القبول؟

تنتظر وظيفة القبول اتصال العميل بالخادم عن طريق حظر البقاء هناك حتى وصول وسيطة. ثم نستخدم وظيفة getInputStream للحصول على مدخلات من المقبس. تم تصميم الخادم بحيث يستمر في قبول الرسائل المرسلة حتى يتم استلام الأمر Over.

لماذا الخيوط المستخدمة في برمجة الشبكات؟

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