我如何创建一个“软”断开的 TCP 连接,就好像网络硬件已经悄悄地断开了流?

问题描述

我有一个 Java 程序,它打开一个 TCP 流并连接到远程服务器上的侦听端口。我向服务器发送请求并收到响应。然后我让流闲置 60 分钟。那时,如果我写一个新请求,它将不会到达服务器。很快,TCP/IP 会让我知道连接已经消失。

我的客户端代码在通过 VPN 路由器连接到公司环境的 Windows 笔记本电脑上运行。服务器在加拿大呼啸而过,在美国马萨诸塞州中部离我很远。我可能会通过多个网络设备进行路由。我不知道是哪一个导致流中断。 (我一直在想捉鬼敢死队和“不要越过溪流!”)

当某台设备专门“忘记”空闲的 TCP 连接并导致其中断时,使用的最佳术语是什么?是半开半闭,还是就这么消失了?

我希望能够完全在我的家庭实验室中模拟这种超时场景,以便我可以执行更简单的测试——例如,我不必等待 60 分钟!什么是好的技术,我应该使用什么合适的设备来模拟这种“断开”?我家里有额外的开关,还有一个旧的(而且很火!)WRT 路由器,可以用一些喜欢的东西。

我不想启用 keepalive 来掩盖问题。 Keepalive 不会阻止所有可能的流断开连接情况,AFAIK。我想尽我最大的努力让问题发生并在问题发生时快速干净地处理它。

非常感谢, 比尔·S

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...