A为服务器;B是一个在内网的计算机,经路由器C NAT可访问Internet,路由器C拥有一个Internet IP。
最近在给A与B弄UDP长连接:B主动向A构建UDP长连接,长连接构建成功后,刚开始,A与B分别都可以通过长连接主动向对方发送数据。
长连接闲置一段时间后,该长连接开始无法使用,需要B主动重新构建长连接后方可恢复。
简单来说,NAT设备上的NAT记录是有超时时间的,长连接闲置了一段时间,达到超时时间后,NAT设备会认为该连接已结束,清理掉对应的NAT记录,因此A与B就无法再次通过长连接互相发送数据。
解决办法:Heartbeat!