Socket クラスを使用して Java TCP 接続を作成しています。
Socket socket = new Socket();
socket.connect(new InetSocketAddress(host,port),50);
この接続を高速に確立するか、まったく確立しないようにしたいので、接続タイムアウトに 50 ミリ秒を使用しています。
しかし、これらの呼び出しの間の時間を測定すると、50 ミリ秒以上 (125 ミリ秒、さらには 200 ミリ秒) が得られます。時間を測定するには、System.currentMillis() を使用しています。この方法の粒度があまり良くないことは知っていますが、+100ミリ秒の不一致はばかげています。
接続方法に問題がありますか?50 ミリ秒ではタイムアウト時間が短すぎますか? Windows 7 で Java 1.7.0_03 を使用しています。