我正在爲需要設置TCP Keep Alive選項的值的Java應用程序編寫JNI庫。 (它設置Keep Alive Timeout和Interval的值)大多數情況下,我認爲我已經可以工作了,因爲我可以設置Java的Keep Alive開關狀態,並在C++代碼中以正確的結果查詢它。我可以設置其他兩個選項,並且沒有錯誤,但我不確定如何查詢這些選項值。查詢這些值以快速證明它們已被設置將是有用的。如何使用Winsock查詢套接字保持活動值?
任何想法?
只有約束條件是我使用的是C++,Winsock,目標操作系統是Windows XP或更高版本。
不幸的是,那些沒有幫助查詢我需要的額外選項。我已經使用getsockopt,setsockopt和WSAIoctl,但據我所知,這些不公開Keep Alive Interval和Keep Alive Timeout的值。 – Alex
@Alex,您可以使用傳遞給'WSAIoctl'的'tcp_keepalive'結構中相應的條目來爲'SIO_KEEPALIVE_VALS'設置所需的值。不知道你還想要什麼?如果您只想檢查該值是否符合要求,請設置測試用例並使用wireshark查看數據包是否已經過去。 – Ben
對,我已經可以設置選項。我想**現在**他們,但這似乎不可能。 Wireshark是一個很好的建議,但不是很自動化,這將是我的下一個擔憂。謝謝。 – Alex