日期:2014-05-17  浏览次数:21269 次

tcp打洞
刚把udp打洞做出来老板就让我改成tcp打洞 无语泪奔啊
我琢磨了tcp打洞的流程
客户端A和客户端B已经同时连接到了S
1.B通过S向A发送打洞请求
2.A受到请求后 监听本地的一个端口 然后直接向B的公网IP发起连接 链接失败
3.A通过服务器向B发送已经准备好
4.此时B如何得知A向B发起连接时的nat端口啊 就是内个路由器的端口号
我感觉问题就在第四步
udp可以多个监听都在一个端口上
但是tcp必须绑定  尼玛 

------解决方案--------------------
TCP不能打洞,一般都会被断。
------解决方案--------------------
泪奔,什么都不懂。
------解决方案--------------------
引用:
Quote: 引用:

你老板是不是嫌你薪水拿太多了
UDP打洞已经很满足大多数需要了,为什么还要TCP。。。
只看过相关的技术文章,因为有UDP打洞了,没多少人关注TCP打洞吧
希望这篇能帮到你
http://www.vckbase.com/index.php/wv/1471
老大说UDP容易丢包


告诉老大,这个东东还要NAT设备支持的,要是设备不支持,怎么做也白搭,还是用UDP吧
------解决方案--------------------
一般来说,TCP根本无须打动。只要是客户端连上服务器进行长链接,那么客户端跟服务器端就是双工操作,随时可以从服务器端推消息给客户端。

实际上类似Skype等软件,主要的不是靠什么udp打洞,而是它会自动把那些在外网的机器中的某一个(离客户端都比较近的)升级为一个临时服务器,帮助在内网的两外两个机器中转消息。

而如果两个内网机器可以直接连,那么首先先直接连。

因此就算是你从来不打洞,也不碍事。