udp客户端收不到包

yixinxu 2011-04-18 10:55:26
问题是这样的:
服务器架在内网,外网的客户端通过端口转发主动连接到服务器上,走udp协议。当客户端主动请求服务器的时候。服务器向客户端写的信息可以收到。如果是服务器主动请求和客户连连接,客户端就收到不到信息。

象qq的信息转发一样。服务器如何采用udp协议主动把信息送给客户端。
...全文
161 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
diruser 2011-06-03
  • 打赏
  • 举报
回复
要进行一下UDP穿透的处理。
lzlmis2010 2011-06-01
  • 打赏
  • 举报
回复
传一下字符看看,是否连接上
独醒子 2011-05-31
  • 打赏
  • 举报
回复
客户端连接服务器 会临时在路由上打个洞。
这个洞实际就是路由器上的端口映射表的一条记录。
但一段时间不使用,这条记录就会被路由器丢弃。

所以要有个心跳包的机制。至于心跳需要间隔多少时间,
那主要看你软件需求、服务器性能及可能的并发数量了。
几秒到几分钟都可以
我记得好像大多路由器这个丢弃时间是10分钟
kuangning 2011-04-25
  • 打赏
  • 举报
回复
15秒 自己测试下
yixinxu 2011-04-25
  • 打赏
  • 举报
回复
楼上的说的没错。那么这个心跳包应该多久发一次呢
kuangning 2011-04-18
  • 打赏
  • 举报
回复
也就是说 在客户端 你要有个心跳包 保证Nat的维持。他们叫这个打洞
kuangning 2011-04-18
  • 打赏
  • 举报
回复
客户端在路由器后面 端口是路由器建立的端口映射。你要先用客户端连接服务端,博获得客户端的本地端口 往这个端口进行数据发送。
并且你的客户端 要经常给服务端发送数据 来保持路由器的端口映射(NAT),因为这个在路由器上的超时 时间很短。

yixinxu 2011-04-18
  • 打赏
  • 举报
回复
自己顶一下

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧