telnetプロトコル [雑感]
Qtで通信のプログラムを書いてみたた。
サーバ側をQtで書いていてクライアントはTera Termで試した。
サーバ側でreadyReadシグナルが発生するのがクライアント側でENTERを押したタイミングになる。
最初はreadyReadシグナルの仕様かと思ったのだがWireSharkでパケットを調べて見るとENTERキーを押した時にパケットを送信している。
いままでtelnetを使用していてクライアント側はこのよう挙動をしていなかったのでもしたらtelnetはサーバとクライアントで挙動のネゴシエーションを行うのか調べて見た。
マイクロソフトのサイトにtelentのプロトコルを解説しているページがあった。
http://support.microsoft.com/kb/231866/ja
telnetのコマンドがあるなんて知らなかった。
サーバからIAC 、WILL 、 Suppress Go Ahead (255,251,3)の3バイトを送信することによって、クライアントの挙動をENTERを押さなくてもパケットを送信するように変えることができた。
IAC、DO、echoも送信すべきなのだろうがTera Term側の設定でローカルエコーはしないことになっているので送信しなくても試したいことには問題がない。
Windows XPのころまで付属していたターミナルではデフォルトで1文字ずつ送信していたような気がする。
サーバ側をQtで書いていてクライアントはTera Termで試した。
サーバ側でreadyReadシグナルが発生するのがクライアント側でENTERを押したタイミングになる。
最初はreadyReadシグナルの仕様かと思ったのだがWireSharkでパケットを調べて見るとENTERキーを押した時にパケットを送信している。
いままでtelnetを使用していてクライアント側はこのよう挙動をしていなかったのでもしたらtelnetはサーバとクライアントで挙動のネゴシエーションを行うのか調べて見た。
マイクロソフトのサイトにtelentのプロトコルを解説しているページがあった。
http://support.microsoft.com/kb/231866/ja
telnetのコマンドがあるなんて知らなかった。
サーバからIAC 、WILL 、 Suppress Go Ahead (255,251,3)の3バイトを送信することによって、クライアントの挙動をENTERを押さなくてもパケットを送信するように変えることができた。
IAC、DO、echoも送信すべきなのだろうがTera Term側の設定でローカルエコーはしないことになっているので送信しなくても試したいことには問題がない。
Windows XPのころまで付属していたターミナルではデフォルトで1文字ずつ送信していたような気がする。
Where To Buy Viagra http://buycialisuss.com - п»їcialis Cialis Y Presion Arterial <a href=http://buycialisuss.com>Buy Cialis</a> Viagrapurchase
by Lesthycle (2020-02-07 08:30)