我正在为需要设置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