動作確認
CentOS 6.5 (32bit)
やりたいこと
"時:分,データ"の形式 (例 "02:10,-0.9")を5秒ごとに送信したい。
やっつけ仕事的に以下で実装した。
udpSend-exec
# !/bin/env bash
for data in \
"00:00,0.2" "02:10,-0.9" "03:40,0.3" \
"05:30,-0.9" "09:30,0.2" "11:30,0.4" \
"13:30,0.1" "16:30,0.5" "18:30,0.9" "22:00,-0.9";do
sleep 4
## echo $data | nc -u 192.168.10.3 6000 &
echo $data | nc -w 1 -u 192.168.10.3 6000 &
done
[追記 2015/09/10] 上記ncの使用について訂正した。
結果
$ bash udpSend-exec
00:00,0.2
02:10,-0.9
03:40,0.3
05:30,-0.9
09:30,0.2
11:30,0.4
13:30,0.1
16:30,0.5
18:30,0.9
[tmp]$ 22:00,-0.9
5秒ごとに 192.168.10.3(ポート6000)へ送信できた。
不完全というタイトルの理由1
上記スクリプトにて ncに&をつけないと処理がhaltしている感じだった。
送信のブロッキングになってしまったのか未調査。
&をつけて実行できたが、本来のやり方ではないかもしれない。(が、今必要な処理としてはとりあえず使える).
[追記 2015/09/10] -w 1
にて1秒でタイムアウトするようにした。
不完全の理由2
http://qiita.com/7of9/items/6a19c036ada7af01078a
あたりで教えていただいたファイル読込み処理をやれば、もっと綺麗なコードができるはず。