2017-05-19 38 views
0

我正在学习Python套接字。如果我有一个带有公共IP的服务器,我的电脑和服务器可以很容易地使用TCP连接。但是,如果不同局域网中的两台电脑没有公共IP,我该如何连接它们?如何建立没有公共IP的两台计算机之间的cconnection

+0

也许蓝牙? – GeneCode

+0

我正在开发一个网络软件,因此有必要使用像TCP这样的网络编程来连接它们。 –

+0

然后将您的服务器托管在云中并使用该IP。 – Enzokie

回答

1

简短答案是“使用NAT穿越技术”。

长的答案。

这里的主要问题是:

  • 当你建立连接,你真的不知道什么IP地址连接。
  • NAT并不像您所期望的那样工作(关闭地址转换绑定,不接受从某些意外地址发送的数据包等)。

第一个问题可以通过所谓的STUN服务器来解决,它可以让你回到你的公共IP地址。

第二个问题比较复杂,一般没有服务器使用公网IP地址就无法解决。您可以查看“Interactive Connectivity Establishment”规范以查看示例如何在VOIP系统中解决此问题。

总而言之一句话,你可以尝试使用由STUN协议得到了公共地址,但如果它不工作,你需要退回到服务器的公网IP(如TURN服务器)

相关问题