UDP连接自动断开的有关问题

UDP连接自动断开的问题?
系统中有个服务器和客户端,UDP连接的。
在服务器端,处理完以后发送数据,如果没有数据则不发送数据。
客户端采用阻塞方式,没有数据则阻塞在recvfrom函数。
我发现如果服务器长时间不发送数据,一段时间,大概10多分钟以后,客户端就接收不到服务器发来的数据了,这是怎么回事?
难道是UDP长时间不用,系统将其自动关闭了?
请指教,谢谢!

------解决方案--------------------
是这样的,UDP有一个保活时间,在P2P中,叫洞,如果这个洞没有一段时间内有数据通过,会关闭。

这个时间和特性是和你的NAT设备决定。
------解决方案--------------------
那你的发送端sendto返回SOCKET_ERROR,WSAGetLastError函数返回值是什么先看看~
------解决方案--------------------
是这样的,UDP有一个保活时间,在P2P中,叫洞,如果这个洞没有一段时间内有数据通过,会关闭
------解决方案--------------------
定时激活一下
------解决方案--------------------
心跳,维持链路
------解决方案--------------------
,UDP有一个保活时间,在P2P中,叫洞,如果这个洞没有一段时间内有数据通过,会关闭
------解决方案--------------------
这个主要是路由器的原因,路由器会把一段时间不活动的端口给关闭掉,这个时间在路由器里可以设置,建议采用心跳机制
------解决方案--------------------
客户端和服务器端之间的网络一般比较复杂,如路由策略、防火墙、NAT等都会影响两端的通信。可以采用心跳包(如每隔20秒发送一个小的报文通知对端自己的存在,同时也通知了网络设备)避免网络中的设备对UDP的阻断。