يوضح هذا المثال فقط وظائف بسيطة ، والرمز غير صارم ، ولكنه يشرح فقط كيف يمكن للعميل تطبيق رمز بسيط الاتصال بالخادم.
يختبر الكود التجميع والبيئة الجارية تحت أداة Eclipse المتكاملة كما هو موضح في الشكل أدناه:
كود العميل echoclient.java:
package com.zhengzz.echo ؛ استيراد java.io.bufferedreader ؛ استيراد java.io.ioException ؛ استيراد java.io.inputstreamread ؛ استيراد java.io.printwriter ؛ استيراد java.net.socket echoc {Socket Socket ؛ IoException E) {E.PrintStackTrace () ؛ صحيح) ؛ println (br.readline ()) ؛ Main (string [] args) {new echoc (). client () ؛خادم EchoServer.java رمز:
package com.zhengzz.echo ؛ import java.io.bufferedreader ؛ import java.io.ioException ؛ import java.io.inputstreamread ؛ import java.io.printwriter ؛ import java.net.serversoket ECHOS {ServerseCTOCK Socket = ServersOcket.accept () ؛ )) ؛ ("--->" + linestr) ؛ GS) {new echos (). server () ؛نتائج التصحيح المباشر الخاص بي تحت أداة Eclipse هي كما يلي:
دعونا نلقي نظرة على مثال على اتصال مقبس جافا على مستوى هيلوورد. عملية الاتصال:
ابدأ أولاً في جانب الخادم وأدخل حلقة ميتة لمواصلة الاستماع إلى ما إذا كان هناك طلب اتصال لمنفذ معين. ثم قم بتشغيل جانب العميل ، ويصدر العميل طلب اتصال ، ويستمع الخادم إلى الطلب ويرسل رسالة قبول إلى العميل. لطلبات أخرى في حلقة ميتة. بعد إدخال العميل إلى السلسلة ، اضغط على Enter لإرسال البيانات إلى الخادم. يقرأ الخادم البيانات ويستجيب لبيانات العميل. بعد معالجة الطلب هذه المرة ، يختفي موضوع البدء. إذا تلقى العميل بيانات الإرجاع بخلاف "موافق" ، فسوف يرسل طلب الاتصال مرة أخرى وإرسال البيانات ، وسيبدأ الخادم مؤشر ترابط مرة أخرى حتى يستجيب الاتصال. . . يخرج العميل حتى تكون بيانات الإرجاع التي يتلقاها العميل "موافق".
رمز مصدر الخادم:
حزمة com.defonds.begin ؛ Socket ؛ خادم الفئة العامة {Public Static Final Port = 12345 ؛ خادم جديد () ؛ تم توصيل العميل Connect Client = servers.accept () ؛ ) ؛ DataInputStream INPUT = جديد DatainputStream (Socket.getInputStream ()) ؛ نظام البيانات ") ؛ // أرسل سطرًا تم إدخاله بواسطة سلسلة لوحة المفاتيح S = جديد BufferedReader (New InputStreamReader (System.in)). readline () ؛ Out.Writeutf (s) ؛ out.close () ؛ input.close () ؛ } catch (Exc Episode e) {system. استثناء E) {socket = null ؛رمز مصدر العميل:
package com.defonds.begin ؛ Socket (يبدأ العميل ... ") ؛ {// قم بإنشاء مقبس دفق وقم بتوصيله برقم المنفذ المحدد على مقبس المضيف المحدد = مقبس جديد (IP_ADDR ، منفذ) ؛ // إرسال البيانات إلى Server DataOtputStream = New DataOtputStream (Socket.getOutputstream ()) ؛ readline () ؛ ". ) {system.out.println ("استثناء العميل:" + E.GetMessage ()) ؛ ؛ملاحظة: عندما يكتب دفق إخراج المقبس طريقة بيانات البيانات ، يحتاج دفق الإدخال إلى استخدام Readutf لقراءة البيانات ذات الصلة. خلاف ذلك ، سيتم إلقاء استثناء EofException.