يصف مثال هذه المقالة بإيجاز طريقة تنفيذ اتصال المقبس في Android، والمحتوى المحدد هو كما يلي:
1. نظرة عامة على اتصالات المقبس
بعبارات عامة، يعتبر المقبس حجر الزاوية في الاتصالات ووحدة التشغيل الأساسية لاتصالات الشبكة التي تدعم بروتوكول TCP/IP. وهو تمثيل مجرد لنقطة النهاية في عملية الاتصال بالشبكة ويحتوي على خمسة أنواع من المعلومات اللازمة للاتصال بالشبكة: البروتوكول المستخدم للاتصال، وعنوان IP للمضيف المحلي، ومنفذ البروتوكول للعملية المحلية، وعنوان IP الخاص بالمضيف المحلي. المضيف البعيد وبروتوكول المنفذ البعيد.
عندما تقوم طبقة التطبيق بتوصيل البيانات من خلال طبقة النقل، سيواجه TCP مشكلة توفير الخدمات المتزامنة لعمليات تطبيق متعددة في نفس الوقت. قد تحتاج اتصالات TCP المتعددة أو عمليات التطبيق المتعددة إلى نقل البيانات عبر نفس منفذ بروتوكول TCP. من أجل التمييز بين عمليات التطبيق والاتصالات المختلفة، توفر العديد من أنظمة تشغيل الكمبيوتر واجهات مأخذ توصيل (Socket) للتطبيقات للتفاعل مع بروتوكول TCP/IP. يمكن لطبقة التطبيق استخدام واجهة المقبس مع طبقة النقل لتمييز الاتصالات عن عمليات التطبيق المختلفة أو اتصالات الشبكة لتنفيذ الخدمات المتزامنة لنقل البيانات.
باختصار، المقبس عبارة عن تغليف لبروتوكول TCP/IP.
2. خطوات استخدام المقبس (العميل):
1. إنشاء اتصال المقبس (TCP).
من السهل جدًا إنشاء اتصال مقبس في Java، ويمكن تحقيقه باستخدام فئة المقبس التي توفرها مكتبة الفصل.
// يشير إلى العميل client=newSocket("localhost",5000);
2. إرسال البيانات
PrintStreamout=newPrintStream(socket.getOutputStream()); //PrintStream هو الأكثر ملاءمة لإرسال البيانات
3. تلقي معلومات العودة
buf=newBufferedReader(newInputStreamReader(socket.getInputStream())); // أكمل الاستقبال لمرة واحدة واقرأ دفق الإدخال للمقبس واقرأ معلومات الإرجاع فيه
4. أغلق المقبس
المقبس. إغلاق ()؛
3. الملحق:
جانب مأخذ التوصيل (تنفيذ غير متعدد الخيوط) ServerSocketserver=null; // تحديد فئة ServerSocket المقبس = null; // يشير إلى العميل PrintStreamout=null; موجود على المنفذ 8888 استمع على System.out.println("الخادم قيد التشغيل وينتظر اتصال العميل."); // احصل على الاتصال، يدخل البرنامج في حالة الحظر Stringstr = "helloworld"؛ // يشير إلى المعلومات التي سيتم إخراجها out=newPrintStream(client.getOutputStream());out.println(str); Client.Close();server.Close();