我正在尝试测试服务器,我们在RHEL上减少了keepalive参数(默认为7200秒到300)。 我在设置:
try {
Socket tstSocket = new Socket(serverName, portNum);
PrintWriter out = new PrintWriter(tstSocket.getOutputStream(), true);
tstSocket.setKeepAlive(true);
等待10分钟并检查:
out.println("output");
if (out.checkError()){
System.out.println("Socket closed");
}
但是如果我将setKeepAlive设置为true(我应该把它拿出来吗?),这是否意味着不再使用keepalivetime? (来自下面的定义)
tcp_keepalive_time - 发送的最后一个数据包(简单的ACK不被认为是数据)和第一个keepalive探针之间的间隔;在连接被标记为需要keepalive之后,此计数器不再使用。