
1.现在的 bt 协议的 p2p 是 tcp 还是 udp 协议啊? 2.tcp 穿透好像要端口复用,但是 tcp 不是一个端口要么监听要么发送请求么,一但关闭连接,立刻映射的端口就不一样了啊......到底怎么实现啊,怎么才能复用而不改变映射的地址啊,node 怎么实现
1 miniliuke OP 难道真的没有好的解决方法?哪怕是全克隆 |
2 miniliuke OP bt 下载点对点传输文件用的是 tcp 还是 udp 啊 |
3 rongyiran 2017-08-09 09:40:35 +08:00 可以看看 Http 权威指南, 你这么一问,让我第一想到的是 web 隧道。 |
4 gejigeji 2017-08-09 09:49:46 +08:00 感觉 lz 一些概念没搞明白 |
5 joshu 2017-08-9 09:50:26 +08:00 via Android tcp 和 udp 都有 主动发送请求时端口是随机的,被动接受请求时用的是监听端口 |
6 bboot9001 2017-08-09 09:55:02 +08:00 可以搜搜内网穿透的原理看看 |
7 littlewing 2017-08-09 10:00:02 +08:00 upnp |
8 miniliuke OP @littlewing @joshu @bboot9001 UDP 的穿透我可以实现,因为我可以把监听和发送绑定在同一个端口,这样 NAT 映射的也是同一个端口。。。但是 TCP 无法实现,我看网上都说 tcp 的端口复用,不是很明白,因为印象中一般 TCP 绑定了端口,就没法再从同一个端口发送了,还是我错了 |
9 b1eberg0n 2017-08-09 11:17:15 +08:00 BT 走 TCP |
11 disk 2017-08-09 11:51:53 +08:00 via Android @miniliuke p2p 有 tracker 服务器的,客户端需要把一个监听端口映射出去。你干吗要自己造轮子呢。。。 |
13 SleipniR 2017-08-09 16:52:52 +08:00 一些关键字,仅供参考: UPnP(Universal Plug and Play) STUN(Simple Traversal of UDP Through Netwoek Address Translators) TRUN(Traversal Using Relay NAT) ALG(Application Layer Gatewqy) ICE(Interactive Connectivity Establish) |
14 jedihy 2017-08-10 02:52:17 +08:00 映射都是映射监听的端口,只有内网被动监听才需要映射,主动发起连接在不在内网没区别。 映射你 P2P 监听端口就行了。 |
15 jedihy 2017-08-10 02:53:31 +08:00 @miniliuke 你真的需要实现 resue port?而不是搞错概念了?这个只需要一行代码就可以实现`setsockopt(...)`。 |
16 mingl0280 2017-08-10 05:13:08 +08:00 我觉得你好像搞错了什么东西…… TCP 的连接建立以后,两端(几乎)对等,不存在谁只能监听或者谁只能发送的问题…… |