LoginSignup
0
0

More than 3 years have passed since last update.

tmuxを使ってサーバークライアント通信してみた

Last updated at Posted at 2020-04-27

はじめに

この記事はなんとなくJSとかをやっている学生がメモ変わりに書いているものです。内容は期待しないでください。

1.そもそもサーバークライアント通信とは

サービスを提供するコンピュータのサーバとサービスを受け取るコンピュータのクライアントで行う通信方式。ネットワークとかはサーバから放射状にクライアントに繋がっています。これとよく対比されるのがP2P通信でP2P型は全てのコンピュータがサーバとクライアントを兼ね備えています。

2.tmuxを起動してみる

今回はUbuntuで行うのでiTerm2で仮想環境を起動するよ。

起動したところで
1.Virtual Box(バーチャルボックス)
2.Vagrant(ベイグラント)
という2つのソフトウェアを使った仮想環境でUbuntuを使用します。
cd ~/vagrant/ubuntu
vagrant up
vagrant ssh

Ubuntuがインストールされたディレクトリに移動。vagrant upは仮想的なPCにインストールされたUbuntuを起動するコマンドで,vagrant sshはVagrantの仮想マシンがセットされている状態でSSHに接続します。

コンソールが起動したところでtmuxを起動。
tmux
ここでtumuxの簡単なコマンドをまとめておきます。

コマンド 意味 記述する場所
tmux 起動 コンソール
control+b→d 仮想端末から離れる 仮想端末
tumux a 仮想端末に接続する コンソール
control+b→c ウィンドウ作成 仮想端末
control+b→数字 数字にウィンドウ移動 仮想端末
control+b→p 前の数字に移動 仮想端末
control+b→n 後の数字に移動 仮想端末
control+b→x ウィンドウを閉じる 仮想端末

3.tmuxを使ってサーバークライアント通信をする

まずウィンドウを2つにしたところで片方のウィンドウに以下の内容を記述します。
while :; do (echo "Thank you!") | nc -l 8000 ; done

whileというループをを行うため,while:;doとdoneの中にループする内容を記述しています。while内のncはncコマンドというもので今回は
nc -l ポート番号
という-lでリッスンモードとし指定したポート番号で受け待ちを行っています。今回の場合はアクセスがあった場合はechoでThank you!と表示するようにしています。

次にもう片方に以下のように記述します。
telnet 127.0.0.1 8000

127.0.01は自分自身を示すIPアドレスです。この場合telnetを使ってIPアドレスの8000番ポートにアクセスしています。telnet は、リモートのコンピューターにアクセスし、ターミナルのセッションを開始するためのコマンドです。セキュリティ上の理由からsshなどの代替プロトコルを使うことが多いらしい。

先ほどの記述を実行するとechoの内容が表示されているためサーバークライアント間通信を行うことができました!!

4.ついでにtmuxでチャットをしてみる

ncコマンドのファイルを転送する(FTP)を使ってチャットをしてみます。
サーバ側
nc -l -p ポート番号 ファイル名
接続側
nc ホスト名 ポート番号 ファイル名

以上を記述してみます。
今回はサーバ側に
nc -l -p 8000
接続側に
nc 127.0.01 8000
を記述しました。
コンソールに文章などを記述し,サーバ側と接続側に文章が記述されていれば成功です。お疲れ様でした。

IPアドレスとは

IPアドレスとは,0~255の整数4つで構成された32bitサイズのインターネット上の住所です。
IPはInternet Protocol(インターネット・プロトコル)の略称。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0