Networking 如何在没有公共IP的两台计算机之间建立C连接

Networking 如何在没有公共IP的两台计算机之间建立C连接,networking,Networking,我正在学习python套接字。如果我有一个具有公共IP的服务器,我的计算机和服务器可以使用TCP轻松连接。但是,如果不同LAN中的两台计算机没有公共ip,如何连接它们 简单的回答是使用NAT遍历技术 答案很长 这里的主要问题是: 当您建立连接时,您并不真正知道要连接的IP地址。 NAT并不总是像您期望的那样工作,比如关闭地址转换绑定,不接受从一些意外地址发送的数据包等等。 第一个问题可以通过所谓的STUN服务器解决,该服务器可以返回您的公共IP地址 第二个问题更复杂,如果服务器不使用公共IP地址

我正在学习python套接字。如果我有一个具有公共IP的服务器,我的计算机和服务器可以使用TCP轻松连接。但是,如果不同LAN中的两台计算机没有公共ip,如何连接它们

简单的回答是使用NAT遍历技术

答案很长

这里的主要问题是:

当您建立连接时,您并不真正知道要连接的IP地址。 NAT并不总是像您期望的那样工作,比如关闭地址转换绑定,不接受从一些意外地址发送的数据包等等。 第一个问题可以通过所谓的STUN服务器解决,该服务器可以返回您的公共IP地址

第二个问题更复杂,如果服务器不使用公共IP地址,通常无法解决。您可以查看规范,了解如何在VOIP系统中解决此问题的示例


简而言之,您可以尝试使用通过STUN协议获得的公共地址,但如果它不起作用,您需要退回到具有公共IP的服务器,如TURN服务器

可能是蓝牙?我正在开发一个网络软件,因此,有必要使用TCP等网络编程来连接它们。然后将服务器托管在云中并使用该IP。@Enzokie您可能指的是“客户端到服务器”连接,我指的是“客户端到客户端”连接。---或者您想使用服务器进行数据转发,但我想直接连接它们,这会更快。