Rustの練習の一貫としてTCP EchoサーバーをRustで実装した。TCP Echoサーバー とはTCPソケットを開いて接続を待ち受け、送られてきたデータをそのまま返 すサーバーである。今回はそれを作成し、接続確認を行った。
TCP Echoサーバーを書く
TCP Echoサーバーを実装していく。ファイルecho_server.rsを作成する。エン トリーポイントとなるmain()と、サーバーのための関数としてecho_main()を 定義する。
ビルドする
シンプルな構成なのでrustcで直接コンパイルする。
$ rustc echo_server.rs
ビルドが終わるとecho_serverというバイナリファイルが作成されている。
実行する
ビルドで生成したecho_serverを実行する。
$ ./echo_server Listening on 127.0.0.1:17007
起動するとecho_serverは17007ポートにTCPのソケットを開いて待ち受ける。
接続の確認を行う
TCPで接続できれば確認ができる。 使うツールは何でも良い。例えばtelnetやcurlでも確認ができるだろう。 スクリプトで簡易なプログラムを書いても良い。
今回はEmacsのnetwork-connectionを使用した。Emacsで M-xnetwork-connection RET
を実行すると接続先のホストとポートの入力をminiバッファー上で求めてくる。
ホストには 127.0.0.1
、ポートには 17007
をそれぞれ指定する。
ホスト | 127.0.0.1 |
ポート | 17007 |
接続できるとバッファが開く。そこで文字を入力し C-c C-c
する。
すると入力した文字は送られ、同じ文字がかえってくる。
echo_serverの標準出力には接続と切断のログが出力される。
参考
- プログラミングRust (オライリー・ジャパン)