日期:2014-05-20  浏览次数:20906 次

Java实现TCP打洞过程中遇到的问题
需求是做一个P2P文件传输系统,涉及到防火墙穿透的问题,由于刚接触,在网上看到打洞的方法,所以效仿了一下,但是遇到了两个奇葩的问题,很拙计,希望大家给点意见

------解决方案--------------------
引用:
    A和B都没有用ServerSocket,这两者的连接我是用两端同时Socket.connect()实现的,这种情况下可以用telnet连吗?


都没有ServerSocket,AB怎么通信的?
------解决方案--------------------
引用:
Quote: 引用:

我理解你那个server就是个代理。后续的连接通过A和B的socket。那你A和B不通怎么整


    是的,Server只是帮助A和B建立直接连接的,A和B建立连接之后就跟Server没有关系了。
    通过上面说的那种方式,是可以让A和B建立Socket连接的,但是现在的问题就是,为什么需要在(3)(4)两步之间需要延时,怎样才能不用这个延时就能达到效果,因为实际过程中,如果每次都要等1分钟来建立连接感觉不合理。
    而且不光是延时的问题,而且这种方式还不可逆,就是我说的第二个问题,会是路由器本身的设置问题吗?但是A和B的路由器都是TPLINK,而且我看了,设置也基本相同,所以就很郁闷了。。。


这基本上和java代码实现没关系了,和你的网络环境有关系。还是检查下网络吧,比如路由设置什么的。路由器里还有TCP/IP连接的设置,都去看看