小弟我做的UDP 穿透总是有有关问题

我做的UDP 穿透总是有问题,
做UDP 穿透 NAT 的简单例子. SERVER 放在外网. 2个CLIENT 端 ,A , B . 分别放在2个电脑上. 登录后. 开始 A 和 B 都可以相互发送消息. 可是过了一会. B 能收到 A 发过来的消息. 但是 A 却收不到 B 发过来的消息了. 这能是什么原因呢? 我应该怎么测试?

------解决方案--------------------
可能是B的IP发生改变了,B发送数据A之前,向服务器询问下A的IP和端口
------解决方案--------------------
A、B定时向服务器发送心跳包,服务端收到后刷新A、B的IP及端口信息,并定时向A发送B的Nat信息,向B发送A的Nat信息,Nat信息即IP及端口