0

TCP Keep Alive オプションの値を設定する必要がある Java アプリケーション用の JNI ライブラリを作成しています。(Keep Alive Timeout と Interval の値を設定します) Java から Keep Alive のオン/オフを設定し、C++ コードで正しい結果を照会できるため、ほとんどの場合、機能していると思います。他の 2 つのオプションを設定でき、エラーはありませんが、これらのオプション値を照会する方法がわかりません。これらの値をクエリして、設定されていることをすばやく証明すると便利です。

何か案は?

唯一の制約は、私が C++、Winsock を使用しており、ターゲット OS が Windows XP 以降であることです。

4

1 に答える 1

0

方法については、こちらをご覧ください。

魔法の言葉は、、getsockoptです。setsockoptSO_KEEPALIVE

WSAIoctlも必要になる場合があります。

tcp_keepaliveシステムには、に渡された構造WSAIoctlの現在の値をチェックする方法がありませんSIO_KEEPALIVE_VALS。それらを必要な値に設定することはできますが、現在の値を調べることはできません。

それらが尊重されているかどうかを確認したい場合は、テストケースを設定し、wiresharkまたはNetwork Monitorを使用して、値を確認できます。ただし、システムが設定を尊重しない場合は、おそらく何もできないことに注意してください。

ただし、TCPキープアライブをアプリケーションレベルの意味でオーバーロードしようとしている場合は、この質問に対する私の答えを確認することをお勧めします。

于 2013-01-07T15:02:00.503 に答える