سؤال

ولدي الخفي سولاريس مكتوب في Java6. يمكن للعملاء الاتصال بها باستخدام واجهة أسلوب التلنت. أنها telnet إلى منفذ معين، وأنا أقرأ خطوط المدخلات والعمل على أساسها.

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

ورمز له كائن المقبس ويخلق InputStream من getInputStream مقبس لنتيجة ()، ثم يقرأ والمخازن الأحرف من InputStream، وكسر لهم على الحدود CR / LF.

وأنا لا أرى أي سمات سواء على InputStream أو مقبس لتعطيل الأصداء الأحرف مرة أخرى إلى العميل.

ويمكن للشخص اللمز لي في الاتجاه الصحيح؟

هل كانت مفيدة؟

المحلول

ويبدو أنك بحاجة إلى بناء محطة الشبكة الافتراضية البسيطة التي تدعم أي صدى الخ الأوامر. هناك بالفعل إجابة جيدة يجب عليك الرجوع إلى على SO: التلنت خادم

نصائح أخرى

ويجب أن نفهم أين صدى قادم من. اتصالات TCP وInputStreams جافا لا توفر صدى من تلقاء نفسها. برنامج Telnet التي يقوم المستخدم عادة يبدأ في وضع "echo المحلي"، وهذا يعني أنه يردد كل ما كتبته من قبل المستخدم إلى شاشة المستخدم. عندما يتصل عميل telnet إلى ملقم التلنت الفعلي، فإنه عادة تتفاوض "صدى بعيد" واسطة في هذه الحالة النظام البعيد يوفر صدى. عندما يتصل تلنت إلى شيء آخر، مثل خادم HTTP أو SMTP، فإنه يبقى فقط في وضع echo المحلي.

ويمكن للمستخدم إصدار أمر لإيقاف echo المحلي في عميل، ولكن ذلك لن يكون ملائمة للمستخدم جدا لمطالبة المستخدمين لديك للقيام بذلك. كما تقول إجابة أخرى، إذا كنت تريد أن تتحول مرددا وخارجها، وسوف تحتاج إلى تعزيز الخادم الخاص بك لدعم بروتوكول Telnet، ثم التفاوض صدى بعيد مع العملاء.

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

ويجب أن ننظر عن كثب في برنامج ملقم Telnet على الخادم المضيف الخاص بك. قد يكون من الممكن استخدام ملقم Telnet القائمة والواجهة للبرنامج، بدلا من reimplementing كل ما يفعل. حظا سعيدا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top