游戏开发者社区

[AIR] 问个问题,UDP外网发包给内网应该怎么弄

查看: 12715|回复: 6

Rank: 12Rank: 12Rank: 12

威望
1 点
义气
5 点

AQ小生

发表于 2015-1-31 22:34:27 |显示全部楼层
5银子
UDP外网发包给内网应该怎么弄?

最佳答案

与天斗/争 查看完整内容

找找p2p打洞。 stun/turn http://blog.csdn.net/yu_xiang/article/details/9227023 p2p http://www.360doc.com/content/12/0428/17/6187784_207328686.shtml tr-069 UPnP ALG Public STUN server A STUN service hosting the Stuntman code is being run at stun.stunprotocol.org (UDP and TCP ports 3478).

举报

Rank: 8Rank: 8

威望
1 点
义气
5 点

AQ小生

发表于 2015-1-31 22:34:28
找找p2p打洞。
stun/turn  http://blog.csdn.net/yu_xiang/article/details/9227023
p2p  http://www.360doc.com/content/12/0428/17/6187784_207328686.shtml
tr-069
UPnP
ALG

Public STUN server
A STUN service hosting the Stuntman code is being run at stun.stunprotocol.org (UDP and TCP ports 3478).

举报

Rank: 7Rank: 7Rank: 7Rank: 7

威望
2 点
义气
40 点
发表于 2015-3-2 09:04:27
外网是不能直接发包给内网的,即便是知道内网路由器的IP和端口也不行,路由器会拦截,通讯过程应该是内网先发送数据包给外网服务器,因为外网服务器直接拥有的是外网IP地址,所以会收到内网计算机发出的数据包,这个时候外网收到后解析出该数据包的来源(IP+端口),然后往这个地址回,内网就能收到了。我之前写过一篇关于广域网UDP通信的,希望能帮助到你。
http://www.pengyaou.com/Original ... 3-52f45ce7494a.html

举报

Rank: 6Rank: 6Rank: 6

威望
13 点
义气
7 点
发表于 2015-3-14 10:04:38
简单说就是要里应外合,内应先勾搭

举报

Rank: 7Rank: 7Rank: 7Rank: 7

威望
2 点
义气
40 点
发表于 2015-6-14 10:25:53
必须是内网先发包给外网,外网收到后解析出内网的地址,再回发。
http://www.pengyaou.com/homearts/ULMIEYOLXMJYK_118.html

举报

Rank: 7Rank: 7Rank: 7Rank: 7

威望
0 点
义气
5 点
发表于 2015-11-19 15:30:21
好贴 留名

举报

Rank: 1

威望
0 点
义气
0 点
发表于 2016-4-26 13:51:49

从问题来看,不是P2P问题而是客户端与服务器间的通信问题。
UDP通信大多数情况下是会运作的。就像别人已经回复的那样(STUN)操作即可。就是说,NAT 路由器内部的客户端向外部发送包装。
并不是所有的客户端都可以使用UDP。考虑到公司保安因素,在切断UDP通信的网络环境下时UDP不可使用。不是很了解中国的情况,但是在韩国移动LTE 网络环境下,不可使用UDP的情况也是很常见的。这时,只能选择使用TCP方式。所以说,不可只依赖于UDP,与TCP共同使用的话能起到更好的效果。两个网络的路由器都使用Symmetric NAT的话,UDP间的通信是很困难的。除非路由器安装有外部服务器与电脑可识别的端口和IP特征。没有这样特征的路由器是无法进行UDP通信的,像这种情况TCP或者UDP要进行交替联网设置。
交替联网指的是,客户端1->交替服务器->客户端2 的流程进行包装后发送的的方式。并不是直接从客户端1->客户端2 包装发送的方式。
P2P的优点是不通过服务器直接通信对服务器不会产生负荷而加快通信速度,缺点则是开发时会遇到很多棘手问题。 虽然ProudNet不是免费的, 但ProudNet可以提供P2P网络引擎更有效的解决问题。
ProudNet是P2P与C/S联网一次性完成。街头霸王5,七骑士等190个游戏已经引用ProudNet.
ProudNet主页是 http://www.proudnet.com.cn 。以上所讲述的复杂过程,都可以通过ProudNet自动解决,确认P2P联网状态后即可进行游戏开发。
服务器会引用函数CreateP2PGroup({C1,C2}) “两个客户端之间可进行P2P通信”.
即发生与对方通信的事件:
C1: OnP2PMemberJoin(C2) // C2
C2: OnP2PMemberJoin(C1) // C1
客户端引用对方的包装函数,然后对方即可接受。
C1: SendUserMessage(C2, msg) 发送给C2 信息,或者 C1: Func1(C2, Vector3(x,y,z))通过C2引用 Func1函数进行远程开启.

举报

Rank: 12Rank: 12Rank: 12

威望
1 点
义气
5 点

AQ小生

发表于 2016-9-20 21:57:43
试试花生壳,有可能行!哈哈

举报

您需要登录后才可以回帖 登录 | 注册

关闭

江湖传闻

手机版|9RIA.com ( 京ICP备11007422号-2 

GMT+8, 2017-3-24 20:15 , Processed in 0.096418 second(s), 18 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部