首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

UDP通信,外网向内网发消息,内网无法收到

2012-10-11 
UDP通讯,外网向内网发消息,内网无法收到疯了啊。。。先发了个帖子也是这个问题。。后来又看了些文章,说内网一台

UDP通讯,外网向内网发消息,内网无法收到
疯了啊。。。先发了个帖子也是这个问题。。后来又看了些文章,说内网一台电脑上先向外网发送一个UDP包。。外网收到了这个包。。并从中得到内网中该电脑的公网IpEndPoint,通过这个IpEndPoint就可以与之通讯。
现在我得到了IpEndPoint,为什么内网里的电脑还是收不到消息呢。

[解决办法]
外网是不能够主动发送UDP数据包给内网机器的.因为NAT里没有映射,包来到路由器就进不去了.要想内网能够接收到数据,必须的是内网先发一个包给外网.外网收到此包,获得IP与端口,(注意:获得的端口是NAT自动分配的,并不是内网自定义启动的监听端口).有关闭时间限制.记得好像是一般是45秒以内.要确保内网能接收到外网的数据.最好是在收到内网发的包30秒内发送此包.
[解决办法]
过ipe获得对方的IPENDPOINT没问题啊,服务器发送消息时就使用这个ipe的IP与端口发送,就能够把消息发到.
[解决办法]
要想长期保持NAT分配的端口一直存在,我以前的做法是每隔30秒左右给对方发一个在线通知包.这样,NAT分配的端口就能一直保持下来.

热点排行