我怎样才能像你一样简单地通过 nat 发送和获取字符串?

How can i send and get string through nat, simply as you can?

我的给定状态是网络上的两台计算机,它们知道两台计算机的外部 IP 和端口以及它们的内部 IP 和端口。 (没有服务器包含

如何在它们之间创建 TCP 套接字?

尽可能简单

提前致谢

既然你说的是外网IP和内网IP,我想你的意思是两台电脑都在路由器或其他NAT设备后面。

所以,如果你想通过 TCP 连接它们,这里有一些方法。

  1. 如果能用WLAN中的服务器做中继,就很简单了。计算机连接到服务器,服务器为它们更改消息。

  2. 如果您不想使用服务器,那么问题来了:NAT 设备可能会根据其类型丢弃那些尚未建立连接的数据包。这里有四种类型:full cone NAT、restricted NAT、port restricted NAT和symmetric NAT。这里有一些针对这种情况的方法

    2.1 使用NAT穿越算法,但在对称NAT中可能效果不佳

    2.2 使用STUN/TURN/ICE实现,比较靠谱,但需要学习如何使用。