我正在使用 lidgen-network 库 3 来尝试创建对等连接。我是网络编程的新手,这就是我使用这个库的原因。
使用 DiscoverKnownPeer() 函数,我已经能够在我的网络中进行连接。我在网上读到的是我需要做一个 NAT 穿透,这需要一个运行在路由器之外的服务器。我希望有一个不需要这个额外服务器的解决方案。
如果我可以将两个 ip 地址存储在 Web 服务器上,并创建一个 Web 服务以通过 XML 将 ip 发送到每个相应的客户端,我是否能够创建对等连接?
先感谢您。
不,如果没有集合服务器,您将无法通过 NAT 建立连接
NAT 会阻碍您,因为即使您知道 IP 地址,也只能让您到达路由器。路由器收到来自互联网的请求,但不知道将其发送到哪个内部 IP,因此将其丢弃。
NAT 穿透的工作原理是让两个对等方相互发送传出请求,然后路由器“知道”在给定端口上指向其公共 IP 的数据包应该发送到给定计算机。
因此,您需要将两台计算机连接到不在 NAT 后面的外部服务器,然后使用该外部服务器协调将两个 NAT 模糊对等点连接在一起(这是 Lidgren 内置的对等点介绍)。
我知道这是旧的,但...
您没有指定在您的设置中必须使用 DiscoverKnownPeer()。如果不是,那么您可以通过在路由器中应用端口转发规则来设置点对点。