Aug
場景
偵測 100 個服務器的狀態,想要得知目前網路斷線或是 HTTP 服務中斷,以及多久可以測一輪。
java isReachable?
雖然 java 5 有個 isReachable 的方法,但是似乎剛開始支援,有點問題,個人測試結果也是有點怪。一是時間有點長,接近一秒。
Sun Microsystems Inc. 1.5.0_06 running on Windows XP 5.1 127.0.0.1--982ms
另外也放鯊入區網,跑個 isReachable 觀察一下,確實沒有看到 ICMP 在區網出沒,只看到 TCP echo 出現。為了加以對照,用 ping.exe 跑一下,果然出現 ICMP。
(謎之音:小心鯊魚很可怕,上班時候就別在區網上亂摸魚了)

order of magnitude
至於為何在上面先出現 ICMP ? 那是因為 ping.exe 用了 8ms 比較短,Tcp echo port 7 用了接近 1000 ms ,所以慢了一點出現。
這種顯著性的差異是幾個數量級,所以必須確保該平台可以跑到,不然同一時間只出跑一台跟預期跑出一百台,會有很大的期望落差。