ping
の-w
(期限)フラグとは何ですか? ping
のマニュアルページに説明がありません。パラメータとして数秒かかる-W
のみ。それらの違いは何ですか?また、pingタイムアウト(ホストが応答しない場合)を200msに設定するにはどうすればよいですか?
man ping
から:
-w deadline
Specify a timeout, in seconds, before ping exits regardless of how many packets have been sent or received. In this case ping does not stop after count packet are sent, it waits either for deadline expire or until count probes are answered or for some error
notification from network.
-W timeout
Time to wait for a response, in seconds. The option affects only timeout in absense of any responses, otherwise ping waits for two RTTs.
つまり、-w
はプログラムセッション全体のタイムアウトを設定します。 -w 30
を設定すると、ping
(プログラム)は30秒後に終了します。
一方、-W
はsingle pingのタイムアウトを設定します。 -W 1
を設定すると、その特定のping試行はタイムアウトになります。
個々のpingタイムアウトを200ミリ秒に設定する方法については、これがiputils
のバージョンのping
で実行できるとは思いません。 ICMPライブラリーを使用して直接プログラミングを試すこともできます。
私のマンページ(Fedora 18、iputils-20121221-1.fc18)は言う
-w deadline
Specify a timeout, in seconds, before ping exits regardless of
how many packets have been sent or received. In this case ping
does not stop after count packet are sent, it waits either for
deadline expire or until count probes are answered or for some
error notification from network.
-W timeout
Time to wait for a response, in seconds. The option affects only
timeout in absence of any responses, otherwise ping waits for
two RTTs.
すべての良い答えですが、(私のように)プラットフォーム間でコードを移植する場合は、この癖に注意してください。以下のテキストは、それぞれの「man ping」ドキュメントからのものです。
Mac OS Xの場合:
-W
waittime
送信時間ミリ秒送信された各パケットに対する応答を待機します。
Raspberry Piの場合:
-W
timeout
secondsでの応答を待つ時間。
Macで1秒(1,000 µms)待つようにコード化しました-W 1000
、ただしこのコードがPiに移動すると、最大1,000秒待機しました。