2016-05-09 16 views
0

ファイルを1つのRaspberry Piから別のものに連続して送信したいです(電源がオフになるまで)。あるPiからAPにデータを送信し、そのAPからそのデータを他のPiに転送しています。私は一度(成功した)ファイルを送信するために、現在のコードを使用しています:netcat/socat経由でファイルを継続的に送信

受信機:socat TCP-LISTEN:4242 /home/pi/Desktop/smth

送信者:socat TCP:hostname:4242 /home/pi/Desktop/zeroMega.dat

ファイル私が送信しています(zeroMega.dat)ランダムに生成されたファイルです、私はデータを気にせずに、1つのPiから1つのPiまで1 MBのこのファイルを連続的に送信(ループ)する必要があるからです。どうすればこのことができますか?私はおそらく、特にこれを起動時に実行する必要があるので、これを継続的に実行するスクリプトを作成する必要があることは知っています。どんな助けもありがとう。ありがとう。

+0

別のオプションは、あなたのファイルとして 'は/ dev/zero'を使用することであり、それは永遠にゼロを補給する続ける... –

+0

私はファイルzeroMega.datを作成最初に '/ dev/zero'を使います。ありがとう。 – Sapiens

+0

あなたのファイルが無限大であれば、最初のファイルが永遠に続くため、繰り返しループする必要はありません。 –

答えて

0

無限ループの中に置く:

while true; do 
    # whatever should be repeated forever 
done 
+0

Thomasさん、ありがとう、私はこれを試しましたが、その論理は正しいようですが、使用しているポートのためにエラーが発生しています。私は私のポストで上記のコードを "中"の例でコピーしました。私はあなたに2つの.shファイルを与えました。指定されたポート(この場合は4242)でファイルを送信すると、エラーが表示されるようです: 'Address already in use'これは、ファイルを一度送信した後、同じポートで試行し、そこには既存のプロセスがあります。どのように私はこれを克服できますか?同じポートでファイルを「無限」に送信すると完璧です。 – Sapiens

+0

ええ、はい、ポートは閉じた後もしばらくの間予約されています。実際に相手側のファイルを_store_したいですか?必要なものがトラフィックを生成するだけであれば、代わりに無限のデータストリームを送信する方が簡単かもしれません。他のコメント作成者も同じ結論に達しているようです:) – Thomas

+0

本当に、もう片方の情報を保存する必要はありません。実際には、受信側の '/ dev/null'に書きます。 TCPの代わりにUDPを使用すると、トラフィック(〜15 Mbps)が得られます。しかし、それは安定していません(10秒間完全に停止することもあります)が、もう一度UDPです。ありがとう。 – Sapiens

関連する問題