0

次のように定義された Telnet クライアントがあります。

    TelnetClient telnet = new TelnetClient();
    telnet.connect(server, port);

次に、入力ストリームを取得します。

    InputStream in = telnet.getInputStream();

そして、ループでその上にあるものを読み込もうとします:

    while (true) {
    int TEST = in.read();
    }

入力の「テキスト」部分を受け取ると、すべてがうまくいくように見えます...しかし、(私にとって非常に重要です!)先頭のバイトがありません。これは、ポートで起こっていることのスヌープです。

    64: a88f ffff 3034 3131 3032 3030 3030 3030    ¨...041102000000
    80: 3030 322e 3031 3131 2e36 2e34 2020 3135    002.0111.6.4  15
    96: 2e39 2e33 2020 3030 3132 30                .9.3  00120

「ffff」に注意してください: これは私が必要とする主要部分です (それより前のすべてはゴミです: TCP 通信の一部です)。

ただし、「TEST」変数を出力すると、「041102...etc」しか表示されません。

BOMInputStream も使用してみましたが、取得できません。

=>どうすればそれらを受け取ることができるか、何か考えはありますか?

ご協力いただきありがとうございます !

4

2 に答える 2

2

TelnetClientインスタンスによって提供される入力ストリームは、データ文字のみを提供します。テレネット プロトコルのシグナリングは、コードによって除外されTelnetClientます。

シグナリング情報、オプションなどを取得したい場合は、TelnetClientAPI で他のメソッドを使用する必要があります。さまざまなアプローチを試すことができます。たとえば、オプション ハンドラや通知ハンドラを登録したり、「スパイ ストリーム」を登録したりできます。

于 2012-08-17T15:16:22.010 に答える
1

本当にすべてのデータを表示したい場合は、Socket代わりに使用する必要があります。TelnetClient

于 2012-08-17T15:54:26.813 に答える