p2p之Tcp穿透路由Nat

来源:互联网 发布:仅限淘宝商城卖家出售 编辑:程序博客网 时间:2024/05/18 10:22

终于解决了关于基于Tcp的p2p的内网穿透问题

其实本该在去年就解决这个问题的,代码写出来了,只是一直没时间去验证。

这几天重写了一下。

 

中国的网络基本是全是内网,通过路由的nat转换;udp的p2p实现起来非常简单。

只是udp太不稳定了,如果网络快的情况下丢包太严重。

 

所以一直想是否能通过tcp来代替udp,还好在国外的一个论坛上看到了相关的解决方案

http://www.brynosaurus.com/pub/net/p2pnat/

相对于udp来说,复杂一点,只多了2步而已,网站上给出了全部步骤,但真正的建立并不需要完全按网站的,

 

我的方法是

1建立2个服务器,(for Base Tcp,for Hole Tcp)

2.打开Client,4个Socket,(1 for Base Tcp Socket  2 for Hole Socket 3,for Listen 4 for Connect To Listen)

3,建立base连接,

4发起hole连接,client—server,

5.server通知client打洞Hole,server通知client IP and Port

6.client  Listen 本地的hole端口

7 client请求connect TO client ;

8.如果失败client通知对方连接自己


Server:

 


Client 1

 

 

Client2


原创粉丝点击