我和老师接手一个即时通讯软件开发项目!遇到问题ing
我和老师接手一个即时通讯软件开发项目!遇到问题ing
老师开始时候对UDP打洞原理了解还算充分,并且在实验室局域网内,各种网络拓扑情况都测试通过,可以先在拿到公网上面竟然出了问题!
我形容一下我的情况,请高手给点指点,说明一下为什么出现这种情况!
首先我们有一个公网的Server:111.111.111.1:2881
然后我正在使用的是2个NAT下的一个普通PCA:192.168.0.2:12345
我登陆服务器以后服务器看到我的公网信息是PCA:111.111.111.2:10000
这时 为了方便测试我们用了另外一台公网的PCB测试,他的IP:Port是
PCB:111.111.111.3:12345并且登陆以后也是这样
现在遇到一个问题!PCA要与PCB通信
PCA 发送数据给 PCB 成功!
PCB 从Server那里收到我的公网信息PCA:111.111.111.2:10000
PCB 发送数据给 PCA 失败!
请问这个是为什么!!!
在没有测试的时候我预想是端口被改变了,但是我每隔30s向Server发送心跳信息!
Server看到我的信息端口没有改变阿!
如果真的是发生了一个socket出nat以后不同sesion不同端口的话,那么qq他们有时如何实现的呢,高手谢谢 帮忙看看之 , 小弟不胜感激!!!!!!!!!!!