lidgren网络库可以直接连接到两个IP地址的对等点

时间:2010-09-24 04:36:13

标签: c# p2p lidgren

我正在使用lidgen-network library 3来尝试创建点对点连接。我是网络编程的新手,这也是我使用这个库的原因。

使用DiscoverKnownPeer()函数,我已经能够在我的网络中连接。我在网上看到的是,我需要进行NAT穿孔,这需要在路由器外部运行的服务器。我希望找到一个不需要这个额外服务器的解决方案。

如果我可以将两个ip addesses存储在Web服务器上,并创建一个Web服务以通过XML将ip发送到每个相应的客户端,我是否可以创建对等连接?

提前谢谢。

2 个答案:

答案 0 :(得分:4)

不,如果没有集合点服务器,您将无法通过NAT建立连接

NAT阻挡你的方式,因为即使你知道IP地址,也只能让你到达路由器。路由器接收来自互联网的请求,并且不知道要将哪个内部IP发送给它,因此它将它丢弃。

NAT穿通通过使两个对等体彼此发送传出请求来工作,然后路由器“知道”在给定端口上指向其公共IP的数据包应该到达给定计算机。

因此,您需要将两台计算机连接到不在NAT后面的外部服务器,然后使用该外部服务器来协调将两个NAT模糊对等点连接在一起(这是Lidgren内置的对等介绍)。

答案 1 :(得分:0)

我知道这已经老了但是......

您没有指定在您的设置中使用DiscoverKnownPeer()是必要的。如果不是,那么您可以通过在路由器中应用端口转发规则来设置对等。