yoshimi.'s Diary

よしみ.が過去にやってきたことに掃き溜めです

ロバストプロトコルのサンプルコードを動かしてみた

今年もロバチャンの季節(某キャンプの季節)がやってきました

そして、毎年話題に上がるのがロバチャンの講義。いきなりロバストプロトコル書けと言われてもしんどいので昨年ぐらいからロバチャン創設者のリポジトリにサンプルプログラムが用意されたので、今回はそれを1台のPC(ループバックアドレス)で使用したときのメモを残しておきます。

こちらが使用した公式のリポジトリです

github.com

まずリポジトリをgit cloneやダウンロードするなりして自身のPCに落とします。

そして/robust 内にデータを受信するためのディレクトリを作成します(ここではdataReceive とします)

その後、/robust/sample 内のmain.py の9行目、32行目のipアドレス127.0.0.1に変更、35行目付近の

utils.write_file(f"../data/data{i}", filedata) を

utils.write_file(f"../dataRecive/data{i}", filedata)

のように先程作成したディレクトリと同じ名前に変更します

次に /robust 内のready.sh の12行目のipを127.0.0.1に変更してください

最後にmd5の値を確認するためのプログラム cmp.pyの9行目、10行目の

"./datar" を

"./dataReceive"

のように作成したディレクトリと同じ名前に変更します

 

あとはターミナルを2つ立ち上げて、1つ目のターミナルで /robust 内のready.shを実行して送信用のファイルを実行します

./ready.sh

もし、実行できないときはchmod やプロパティのアクセス権限から実行権限を付与して下さい。

その後、/robust/sample 内に移動して

python3 main.py receiver

を実行。

2つ目のターミナルで/robust/sample に移動して

python3 main.py sender

を実行するとファイルの送受信が行われます。

 

最後に /robust のcmp.pyを実行するとファイルの送受信に成功した数、失敗した数、重複した数が表示されます(今回は何も妨害がないので生成した全てのファイルの転送に成功しているはず)

 

あとはこれを基にオリジナルのプロトコルを自作するなり自由にどうぞ