サーバーテストのためにメッセージのやり取りをする簡単なシミュレータを
expectコマンドとnetcatコマンド(TCP通信用)を使用して作成しようとしています。
メッセージは以下のような構造になっています。
[バイナリ(3byte)][テキスト(任意byte)][バイナリ(2byte)]
このメッセージをncatコマンドで対象のサーバーに通知することが目的です。
現在、スクリプト内で上記メッセージをncatの入力とする方法が分からなくて困っています。
以下は思いついた方法ですが、いずれも失敗しています。
0. 送信メッセージをファイルに書いておいて、スクリプト内の変数に展開する。
0. ファイルを標準入力へリダイレクトしてncatの引数とする。(リダイレクトはシェルの機能だからできない)
以下はメッセージ送信する処理を抜粋したexpectスクリプトです。
set SERVER 127.0.0.1 set PORT 12346 set FILE message.bin **ボールドテキスト**set MSG [spawn cat $FILE] # これではMSGに送信メッセージを展開できませんでした # 以下の処理ではncatにmessage.binの内容をリダイレクトできません **ボールドテキスト**spawn ncat -C $SERVER $PORT < $FILE exit
あなたの回答
tips
プレビュー