アプリケーション層(実習準備)(BNS
補助資料)
アプリケーション層の実験のためのクライアントソフト
C/S
必要な機能:
- 目的のサーバに TCPによる「コネクション」を開設して、
(コネクション;
データを双方向に流すための、一本のパイプのようなものをイメージするといい)
- 送信すべき通信文を(端末から)流し込み、
- 受信した通信文を(端末に)表示できること。
現状:
- Unix/Linuxでは
telnetというコマンド(ソフトウェア)が標準装備されており、この用途に広く使われてきた。
- Windowsではすぐ使える状態ではないので、以下のように工夫が必要。
- 以下のラインナップからいずれかを選んで使用して下さい。
1 端末(ターミナル)ソフト
- Unix/LinuxサーバにCUIでログインして管理などを行うために使われることが多いソフト。
- ssh対応のものが多いが今回はsshは使わない。
- Windows版では PuTTY、TeraTerm Pro など広く知られている。
- 本節、以下の解説はPuTTYに絞って行う。
インストール
- 第一回で案内したパッケージマネージャ、Scoop またはchcolateyでインストールすることがお勧め。
- オフィシャルサイトから入手してもいい。
- なお、上の2つの方法で入れる PuTTY
は日本語非対応版(メニュー等が英語)です。
- 日本語で使いたい人は、ここを参考にして下さい。
- また、継続的に使う人は、同様の機能を持つソフトウェア(右図)をインストールして使うといいだろう。
使用にあたって
- 起動はスタート画面・スタートメニュー または [win]+R, [win] + putty
などの方法がいいだろう。
- 事前に(メニューから設定画面で)文字サイズなどを設定しておくといい(下図左)。

- 使用するプロトコル(connection type)として、sshでなく raw
を選ぶ(上中図)。

- 「close window on exit」は Never にしておく(上中図)。
- 一回の通信が完了したら、「new
session」で新たにPuTTYの窓を開く必要があるが、前と同じ条件で同じサーバに接続するなら、「restart
session」でいい(上右図)。

2 Windows付属のtelnet
telnetを使うためには、「Windowsの機能の有効化または無効化」で
有効化(右図)する必要があるかもしれない。
この画面は、[win]+s
のあと「機能」や「有効化」で検索すれば見つかる筈。 
(余談だが)この画面を見ると、普段使っていないWindowsの機能にも気が付くだろう(例えばWebサーバとか)。

telnetは、コマンドプロンプトから起動できる(その他の場所からでも起動できるが)。
以下のようなケースがあることを知っておくこと。
- telnet
のあと(または接続できたあと)カーソルが画面の左上隅に移動して
これまでの表示と重なって表示されることがある(注意深く画面を見て下さい)。
- telnet ホスト名 ポート番号 という起動方法で接続した時に、
画面に自分の打鍵した文字が表示されない場合がある。
このときは、以下のような手順で進めるといい。

> telnet # telnet セッションに入る
telnet> set localecho # 打鍵した文字を表示させるオプション
telnet> open ホスト名 ポート番号 # これで接続できる
...
telnet> quit # telnet セッションの終了
> # これでコマンドプロンプトに戻ってくる

解説:
- telnet は古くはUnix/Linuxの端末を接続するための通信方式。
- 当時の端末はユーザが打鍵した文字をそこで表示(ローカルエコー)しなかった。
代わりに、サーバからエコーバックされた文字を表示していた。
- 今もUnix/Linuxの端末ソフトウェアはその原理で動いているため、telnet等のソフトウェアは
標準では(昔の端末と同様に)ローカルエコーを行わない。
- telnet以外のアプリケーション層プロトコルはそういう使い方は前提としていないため、サーバからのエコーバックはない。
- そのため、自分が打鍵した文字を画面で確認できるようにするためには、端末ソフトがローカルエコーを行うよう指示する必要がある。
3. netcatコマンド(の相当品)
Unix/Linuxでよく使われる nc(または netcat)コマンドも
同じ目的で使える。
windowsで使える版はここで紹介されている。
インストールしたら、コマンドプロンプトで、以下のようにして起動できる。
nc ホスト名 ポート
起動にあたっての補足:
コマンドプロンプトから起動する際にPATH設定が行われていないと起動しないことがある。
- 実際には、前述の「使いたいときに必ず忘れる便利なコマンド「nc」」から紹介されている
「即効!LINUX CMD for
Windows」 からダウンロードした zipファイルを解凍し、
- 解凍してできたフォルダの中で、
*.exe
や
*.dll
といったファイルが多数置いてあるフォルダを
エクスプローラで表示させ、
- エクスプローラからコマンドプロンプトを(アドレスバーに cmd
と入力)起動するといい。
TCPセッション(一連の通信)が終了し、コネクションが閉じられると、コマンドも自動的に終了する。
4. ruby製簡易telnet ezTerm.rb