我怎样才能像你一样简单地通过 nat 发送和获取字符串?
How can i send and get string through nat, simply as you can?
我的给定状态是网络上的两台计算机,它们知道两台计算机的外部 IP 和端口以及它们的内部 IP 和端口。 (没有服务器包含)
如何在它们之间创建 TCP 套接字?
尽可能简单
提前致谢
既然你说的是外网IP和内网IP,我想你的意思是两台电脑都在路由器或其他NAT设备后面。
所以,如果你想通过 TCP 连接它们,这里有一些方法。
如果能用WLAN中的服务器做中继,就很简单了。计算机连接到服务器,服务器为它们更改消息。
如果您不想使用服务器,那么问题来了:NAT 设备可能会根据其类型丢弃那些尚未建立连接的数据包。这里有四种类型:full cone NAT、restricted NAT、port restricted NAT和symmetric NAT。这里有一些针对这种情况的方法
2.1 使用NAT穿越算法,但在对称NAT中可能效果不佳
2.2 使用STUN/TURN/ICE实现,比较靠谱,但需要学习如何使用。
我的给定状态是网络上的两台计算机,它们知道两台计算机的外部 IP 和端口以及它们的内部 IP 和端口。 (没有服务器包含)
如何在它们之间创建 TCP 套接字?
尽可能简单
提前致谢
既然你说的是外网IP和内网IP,我想你的意思是两台电脑都在路由器或其他NAT设备后面。
所以,如果你想通过 TCP 连接它们,这里有一些方法。
如果能用WLAN中的服务器做中继,就很简单了。计算机连接到服务器,服务器为它们更改消息。
如果您不想使用服务器,那么问题来了:NAT 设备可能会根据其类型丢弃那些尚未建立连接的数据包。这里有四种类型:full cone NAT、restricted NAT、port restricted NAT和symmetric NAT。这里有一些针对这种情况的方法
2.1 使用NAT穿越算法,但在对称NAT中可能效果不佳
2.2 使用STUN/TURN/ICE实现,比较靠谱,但需要学习如何使用。