我正在做一个实验,目的是实现两计算机之间在互联网上完成数据收发。A计算机是中国电信ADSL用户,在互联网申请了固定IP地址:222.222.222.222 ,在内网中的IP地址是168.143.12.15 。B计算机在互联网上的IP地址是动态分配的,故以A机为服务器,B机主动与A机建立TCP连接。但实验发现,在A机与B机端口相同的情况下,B机始终无法与A机建立连接。我想是不是因为A机在内网中的缘故?该如何解决? 分不够再加!

解决方案 »

  1.   

    首先说明一下,两台计算机以TCP连接时端口号不一定要相同。
    我想连接是由电信的网关截断的,可以检测一下网关。
      

  2.   

    A有公网IP的话,那么无论B有公网IP--通过直接连接,还是没有公网IP---通过NAT连接到公网,都应该可以与A建立连接。可能是B计算机的NAT网关的原因。因为对于正常的连接,NAT做了内网计算机如B到公网IP的地址/端口映射,从而使B建立和公网的连接。你试试换个端口。另外,B的连接端口不必和A一致。
      

  3.   

    可能是你的NAT配置有问题,我有一个NAT配置的参考图,如果需要的话,我可以发给你。
    另外就是你映射本机的端口不能被屏蔽。
    Multiple Port Forwarding :Action :  ADD    No : 1 Channel No: 1   Protocol : TCP                        Begin       End
    Incoming Port :     21         21    
    New         Port :  82         82
    New IP Address :    192.168.0.8 
      

  4.   

    A机连接B机,B机开端口,而A机是不需要开端口的,A机的端口是自动获取的,就算相同也不会有任何问题。