P2P UDP 打洞失败,求指教
首先两个客户端通过服务端交换公网IP
然后已经成功接收对方公网IP的客户端马上分别对对应公网IP发送
但是无论怎样发送都接收不到
是不是还要做点什么的?
试了网上很多例子都不成功
[解决办法]
那就靠猜测,通过连续发送两次数据包根据返回的端口号猜测端口变化规律
[解决办法]
1,猜是一种
2,既然打通了,那就对指定的ip 指定的端口发送数据
3,接收方 监听对应的端口吧
4,这个还好像与路由或交换机的是否支持和设置有关系
5,一起研究吧 不太熟悉这方面
[解决办法]
不是说得到对方公网ip就可以发送成功的 排除路由的问题(牵扯到端口映射) 也是要A先向B发生打洞
报文 这时B的路由肯定会丢弃 但是这时A的路由会“认识”B(因为你往B发了数据) 这时候再通过
发送报文给服务器 让服务器“告诉”B 我的路由已经认识你了 你发消息我 让你的路由也“认识”我
然后B收到服务器的打洞命令 发送打洞报文给A A的路由已经“认识”B 所以链路已通 可以顺畅使用
udp开始通信
[解决办法]
两个客户端是不是在同一局域网?
[解决办法]
其实就是根据服务器的中转 先得到互相的ip信息 然后一方先发送报文让自己的路由不会丢弃对方的报文
然后通过服务器通知对方 也向你发送报文(因为这时候你怎么发送对方都是收不到的) 当对方知道你已经打洞了
再向你发送报文 这时候互相之间就已经“认识了” 后续就可以正常的发送需要的数据了
[解决办法]
你的两个客户端是用几个路由出去的?
[解决办法]