如何重现静默断开的 TCP/IP 连接?
我有一个情况,一个Java程序与服务器建立了长时间运行的TCP / IP连接,并且该连接完全按照文档所述运行,除了我无法控制的环境中的一件事。
每个星期六,该服务器都会重新启动,但由于某种原因,这没有正确传达给我的客户端,因此连接只是挂起,等待永远的响应。这与陈旧的 JDBC 连接的行为完全相同,其中服务器和客户端之间的某些路由器发现连接处于空闲状态,并在没有通知的情况下将其丢弃。
我需要能够重现此方案才能创建正确的修复程序。
因此,我需要知道是否有一种好方法来模拟路由器静默地丢弃我控制下的连接?
我可以在我的开发环境和服务器之间放置一个Linux盒子或Mac。如果我可以在虚拟机(vmware播放器)中运行JVM,如果我可以在那里进行删除。
非常欢迎提出建议。
EDIT 2012-12-18:对我有用的解决方案是在本地使用基于Java的SOCKS5代理,该代理可以随意使用Ctrl-Z挂起,并告诉我的应用程序通过它。