B bifei Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-06 #1 给点思路也可以啊,貌似网上有很多讲UDP的,很少有TCP穿透的。
M _Murray Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-06 #5 听课,UDP的我试过可以,这个问题,我近来比较感兴趣,顶
B bifei Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-06 #6 TCP肯定不可以吗,为什么我在网上搜资料的时候,看到有人说可以,就是很麻烦。还有两个QQ在不同局域网里传大文件是怎么做的,难道QQ传文件也是用udp协议吗。
E errorcode Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-06 #7 只是说很麻烦,而且机率很低. ----------------------------------------------------------------------- http://community.csdn.net/Expert/topic/5173/5173662.xml?temp=.7579004 ProgrameMan(我要学汇编) ( ) 信誉:89 Blog 2006-11-22 0:01:04 得分: 100 不好意思,对你第二个问题还是不明白 假设: 局域网X内 A主机:192.168.0.1 局域网的外网IP:221.231.139.170 外网服务器 B:221.231.139.171 如上情景:假如A主机上开了个服务,B如何联接上它的呢? 好比A主机侦听于端口9988(就是listen于9988端口),此时A又没有外网221.231.139.170相应的端口映射,那外网B又是如何联上A的呢?或者是用别的什么方式?谢谢谢谢 ********************************************************************** 3种情况可B可以连接到A主机, 1. 一种是在A的网关上做端口映射。 2. B不再内网中,此时B让服务器告诉A反向连接到自己这里。 3. A与B都在内网,有一种建立直接P2P TCP连接的方法有时候会被使用。大多数TCP连接都是从一个终端发从一个SYN包到另一个终端,另一个中断同步响应一个SYN-ACK包。无论怎样,对于两个终端来说,同时通过发送同步包到对方然后用一个ACK包应答来建立一个TCP连接是可行的。这种过程就被称为"simultaneous open"(同时打开) 如果一个网关从尝试建立一个TCP连接的私有网络的外面接受一个TCP SYN包,网关通常以丢弃这个SYN包或者发送一个TCP RST(连接复位)包的方式来拒绝这个连接尝试。但是,如果同步包与源和目的地址端口一起到达,那么会让网关相信一个TCP连接已经建立起来,然后网关将会允许数据包通过。特别是如果网关刚刚得到并转换了一个从同样地址和端口来的SYN包,它将认为连接是成立的并允许进来的SYN通过。如果客户端A和B能彼此预测公共端口,它们各自的网关将分配的下一个TCP连接端口,如果其中一个客户端和另一个客户端建立一个外部的TCP连接,可以在对方SYN到达本地网关之前就发送SYN包通过它本地自己的网关,那么P2P TCP连接就可以工作了。 (不过这种方式在实际中成功率太低了)
只是说很麻烦,而且机率很低. ----------------------------------------------------------------------- http://community.csdn.net/Expert/topic/5173/5173662.xml?temp=.7579004 ProgrameMan(我要学汇编) ( ) 信誉:89 Blog 2006-11-22 0:01:04 得分: 100 不好意思,对你第二个问题还是不明白 假设: 局域网X内 A主机:192.168.0.1 局域网的外网IP:221.231.139.170 外网服务器 B:221.231.139.171 如上情景:假如A主机上开了个服务,B如何联接上它的呢? 好比A主机侦听于端口9988(就是listen于9988端口),此时A又没有外网221.231.139.170相应的端口映射,那外网B又是如何联上A的呢?或者是用别的什么方式?谢谢谢谢 ********************************************************************** 3种情况可B可以连接到A主机, 1. 一种是在A的网关上做端口映射。 2. B不再内网中,此时B让服务器告诉A反向连接到自己这里。 3. A与B都在内网,有一种建立直接P2P TCP连接的方法有时候会被使用。大多数TCP连接都是从一个终端发从一个SYN包到另一个终端,另一个中断同步响应一个SYN-ACK包。无论怎样,对于两个终端来说,同时通过发送同步包到对方然后用一个ACK包应答来建立一个TCP连接是可行的。这种过程就被称为"simultaneous open"(同时打开) 如果一个网关从尝试建立一个TCP连接的私有网络的外面接受一个TCP SYN包,网关通常以丢弃这个SYN包或者发送一个TCP RST(连接复位)包的方式来拒绝这个连接尝试。但是,如果同步包与源和目的地址端口一起到达,那么会让网关相信一个TCP连接已经建立起来,然后网关将会允许数据包通过。特别是如果网关刚刚得到并转换了一个从同样地址和端口来的SYN包,它将认为连接是成立的并允许进来的SYN通过。如果客户端A和B能彼此预测公共端口,它们各自的网关将分配的下一个TCP连接端口,如果其中一个客户端和另一个客户端建立一个外部的TCP连接,可以在对方SYN到达本地网关之前就发送SYN包通过它本地自己的网关,那么P2P TCP连接就可以工作了。 (不过这种方式在实际中成功率太低了)
E errorcode Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-06 #8 第三种情况不考虑先,除了第二种情况外,最好的做法是第一种.也就是UPNP,LZ去找这方面的资料,慢慢研究吧,应该不难的.不然去请教一下Bitcomet的作者.