を続け:フィールドでのアウトJavaのソケット遅延は、私がこのようなソケットの上にASCIIを送信しています
outputStreamWriter(s + (char) 13);
outputStreamWriter.flush();
、そこにフラッシュの間に10〜30秒の遅延(可能)、データがネットワークを介して送信されます(wiresharkを使用して検証済み)。
私はsendUrgentDataを取り除くだけをisConnectedにtrueを返しますpublic final boolean isConnected() {
try {
socket.sendUrgentData(32);
return true;
} catch (IOException e) {
return false;
}
()、遅延が消える:
は、ソケット接続をテストするために、私は、これは使用しています。
プロトコルアナライザを使用して、送信しているデータの大部分が、ソケットをテストするために送信する1バイトのように緊急としてマークされることに気付きました。直感的には、遅れてしまう大きな緊急パケットです。
アイデア? ありがとう、 アンドリュー
申し訳ありませんが、私はsetTcpNoDelay(true)を実行しましたが、遅延はまだあります。 – andrewmara