عندما نريد الاتصال بخادم عبر الشبكة باستخدام TCP/IP في Java، نحتاج إلى إنشاء كائن java.net.Socket والاتصال بالخادم. إذا كنت تريد استخدام Java NIO، فيمكنك أيضًا إنشاء كائن JackChannel في Java NIO.
إنشاء المقبس
نموذج التعليمات البرمجية التالي متصل بالمنفذ 80 على الخادم بعنوان IP 78.64.84.171. هذا الخادم هو خادم الويب الخاص بنا (www.VeVB.COM)، والمنفذ 80 هو منفذ خدمة الويب.
انسخ رمز الكود كما يلي:
مقبس المقبس = مقبس جديد("78.46.84.171"، 80)؛
يمكننا أيضًا استخدام أسماء النطاقات بدلاً من عناوين IP كما في المثال التالي:
انسخ رمز الكود كما يلي:
مقبس المقبس = مقبس جديد("VeVB.COM", 80);
يرسل المقبس البيانات
لإرسال البيانات عبر المقبس، نحتاج إلى الحصول على دفق إخراج المقبس (OutputStream) نموذج التعليمات البرمجية كما يلي:
انسخ رمز الكود كما يلي:
مقبس المقبس = مقبس جديد("VeVB.COM", 80);
OutputStream out=socket.getOutputStream();
out.write("بعض البيانات".getBytes());
out.flush();
out.Close();
المقبس. إغلاق ()؛
الكود بسيط للغاية، ولكن إذا كنت تريد إرسال البيانات إلى الخادم عبر الشبكة، فلا تنس استدعاء طريقة Flush (). سيقوم تطبيق TCP/IP الأساسي لنظام التشغيل أولاً بوضع البيانات في كتلة ذاكرة تخزين مؤقت أكبر للبيانات، ويتم تكييف حجم كتلة ذاكرة التخزين المؤقت مع حجم حزمة TCP/IP. (ملاحظة المترجم: استدعاء طريقة Flush () يكتب البيانات فقط إلى ذاكرة التخزين المؤقت لنظام التشغيل ولا يضمن إرسال البيانات على الفور)
المقبس يقرأ البيانات
لقراءة البيانات من المقبس، نحتاج إلى الحصول على رمز دفق الإدخال الخاص بالمقبس (InputStream) كما يلي:
انسخ رمز الكود كما يلي:
مقبس المقبس = مقبس جديد("VeVB.COM", 80);
InputStream in=socket.getInputStream();
بيانات int = in.read();
//... اقرأ المزيد من البيانات...
in. Close();
المقبس. إغلاق ()؛
الكود ليس معقدًا، ولكن تجدر الإشارة إلى أن قراءة البيانات من دفق الإدخال للمقبس لا تقرأ الملف. يتم استدعاء طريقة القراءة () حتى يتم إرجاع -1، لأنه بالنسبة للمقبس، يتم ذلك فقط عندما يكون الخادم تم إغلاق الاتصال، وسيعود دفق إدخال المقبس -1، ولكن في الواقع لا يستمر الخادم في إغلاق الاتصال. لنفترض أننا نريد إرسال طلبات متعددة عبر اتصال واحد، فسيكون إغلاق الاتصال في هذه الحالة أمرًا سخيفًا.
لذلك، عند قراءة البيانات من دفق إدخال المقبس، يجب علينا معرفة عدد البايتات المراد قراءتها، ويمكن تحقيق ذلك عن طريق السماح للخادم بإخبار البيانات بعدد البايتات التي تم إرسالها، أو عن طريق تعيين أحرف خاصة في نهاية البيانات. يتم تنفيذ طريقة الترميز.
إغلاق المقبس
بعد استخدام المقبس، يجب علينا إغلاق المقبس وقطع الاتصال بالخادم. لإغلاق مأخذ توصيل، ما عليك سوى استدعاء أسلوب المقبس ()Socket.Close، ويكون الرمز كما يلي:
انسخ رمز الكود كما يلي:
مقبس المقبس = مقبس جديد("VeVB.COM", 80);
المقبس. إغلاق ()؛
(ينتهي النص الكامل)