两台电脑,一台在墨西哥,一台在中国,不经过固定地址
只在两台电脑上设置,能否通过互联网通讯数据如果能,怎么做,即怎么设置,程序怎么编写?能提供思路的也很感谢。如果必须经过固定地址,希望给个简单描述。谢谢各位了!

解决方案 »

  1.   

    是否都是NAT,都是的话,就需要公网服务器来交互实现打洞,然后通信。
    如果有一台有公网IP,那么有公网IP那个做Server端,另一个做Client,Client跟Server通信,建立连接,交互数据
      

  2.   

    正在做这个,有两种方式实现。
    服务器中转模式:在公网上的服务器S,通信双方(Client-A、Client-B)分别(通过NAT)与服务器S建立连接,通信中的数据均发往服务器,再由服务器转发。这是目前常用的在位于NAT后的主机之间实现通信的方式。实现较简单,缺点也很明显,中转服务器和有限的带宽将成为通信瓶颈,降低传输效率。端到端(P2P)模式:在公网上的服务器S,通信双方(Client-A、Client-B)分别(通过NAT)与服务器S建立连接,并且在通信双方存在一条基于TCP的连接。通信前,通信双方需分别在服务器S注册自己的连接信息(IP:PORT等)。通信时,数据不需经过服务器S,直接从源发往目标。相比服务器中转模式提高了效率。
      

  3.   

    对于双方地址都不固定的两者,是无法直接通信的。
    必须至少固定一方,或者找个第三方固定的地址,双方通过这个第三方固定地址通信
    1、如果必须至少固定一方的方法,可以将其中一个申请域名,用花生壳动态绑定IP,因为域名是固定的,另外一方只需跟这个域名通信即可,当然也可以双方都用花生壳。
    2、如果采用第三方的话,最好自己申请个服务器的IP或者域名,这个最好用电信的服务器,全球静态IP,双方通信通过这个第三方服务器转发即可。也可以采用代理服务器帮你做。
      

  4.   

    5楼hpf976149说的P2P可能适合我的情况
    只是不知道如何具体实现,而且原本是不想麻烦太多才提出着问题的墨西哥的电脑其实是监控设备的,并不接如网络
    只有需要远程协助的时候才接入网线,这只能考虑就和我们家里的宽带一样的而中国的电脑也是一样,需要的时候才接入互联网如果每次接入都要设置很多是不现实的如果实时传输一定量的数据,那么现场和本地感觉时同步的如果用QQ等大量的图片数据其实是没有必要的,而且很慢,也不现实如果非要用到固定IP来中转,不知道有没有免费的,怎么转,固定IP设备也需要程序吗?
      

  5.   

    可以通过一台具有固定IP的服务器建立他们之间连接,这样就可以先尝试性的让他们先建立P2P连接,要是失败,那就只能通过服务器中转了
      

  6.   

    需求:Client-A需要使用基于TCP的协议访问位于NAT设备之后的Client-B
    问题:
    1、A、B没有固定公网IP
    2、NAT设备会丢弃不请自来的连接请求
    解决办法:
    1、Client-A、Client-A在Server-s注册各自连接信息(PublicIP:PublicPort)
    2、TCP直接Client-B,测试是否在同一内网
    3、Client-A发送(请求穿越Client-B的NAT设备)命令给Server-S
    4、Server-S查找Client-A的连接信息,告诉Client-B向Client-A方向开孔
    5、Client-B根据Client-A的连接信息,执行开孔
    注:两端都在Symmetric型Nat后,需端口预测,这种情况不建议使用穿越仅供参考