读书人

关于P2P打洞的原理。该如何处理

发布时间: 2012-08-31 12:55:03 作者: rapoo

关于P2P打洞的原理。
情况:多个客户端、一个服务器。

1.客户端登陆,服务器登记用户的IP和PORT。登陆成功后客户有个定时器向服务器发送UDP信息,来保持在线。

2.现在是当两个客户端要互相发信时,客户A根据客户端B的IP和PORT(服务器端取的)向客户B发送把洞命令,维持连线。

问:
1.在测试中发现:用服务器端取的IP和PORT就可以实现互相正常通信了,请问客户A根据客户端B的打洞还有必要吗?

2.还有就是创建一个scoket后,一个scoket就占一个端口?

3.按上面方方法:客户A连服务器所用的端口,也可以用来客户端A和客户端B及其它客户端相连?

对这方面不清楚,请各位指教下。

[解决办法]
有好多情况啊~
A B 都在nat后面,一方在nat后面,在多层nat后面,... 情况多多 。

问1 ,貌似没必要
问2 ,洞打通后,就是和平常的skt通信一样的了
问3 ,短时间内应该可以。打洞目的是在nat上留下两端IP端口的对应。对于不同协议不同nat,这个对应的保留时间也不同,在这个对应失效之前都是可以的。

读书人网 >.NET

热点推荐