我有一个在Docker容器中运行的Java应用程序。这是一个TCP服务器,它连接到客户端,接收一些字节并在会话空闲时对其进行处理。
如何为我的应用程序模拟TCP会话空闲?
我在docker-compose.yml中尝试了以下操作。
sysctls:
- net.ipv4.tcp_keepalive_intvl=45
privileged: true
下面是TCP客户端连接到服务器并发送一些字节。我放了一个70000,我认为它足以触发TCP会话空闲事件。但是,那没有帮助。
@Override
public void run() {
if (isServerAvailable()) {
try {
outputStream = clientSocket.getOutputStream();
outputStream.write(SampleMessageFactory.PACKET_HEADER);
outputStream.write(SampleMessageFactory.PACKET_MESSAGE_BODY);
Thread.sleep(70000);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
TCP会话永远不会空闲,因此我无法处理测试的字节。