切断後すぐに接続する場合の注意点

ホストとの接続を終了後、すぐにconnectコマンドで新しい接続を開始する場合、以下のような問題が発生する場合がある。例えば、

; exitコマンドを送って、ホストとの接続を終了する。
sendln "exit"

; 新しい接続を開始する。
connect "server"

このマクロは大抵の場合はうまく動かない。
sendln "exit"でexitコマンドを送ってからホストが接続を切断してくるのに少しタイムラグが発生する。
マクロはこのタイムラグの間に次のconnectコマンドを実行する。
しかしホストとの接続がまだ終了していないため、connectコマンドは既に接続しているとみなして何も行わない。

この問題を回避するには、以下のようにホストとの接続が終了したのを確認してからconnectコマンドを実行するようにする。

; exitコマンドを送って、ホストとの接続を終了する。
sendln "exit"

do
	; 10ミリ秒待つ
	mpause 10
	; 接続状態を確認する
	testlink
; まだホストと接続されている(resultが2)ならばループを繰り返す
loop while result = 2

; 新しい接続を開始する。
connect "server"

また、切断後自動的にウィンドウを閉じる設定の場合、以下のようにunlinkコマンドでTera Termを切り離してもよい。

; exitコマンドを送って、ホストとの接続を終了する。
sendln "exit"

; Tera Termを切り離す
unlink

; 新しい接続を開始する。
connect "server"