Windows Peer to Peer Global_ Group没有第三方ipv6隧道

时间:2010-01-06 06:10:31

标签: c++ winapi ipv6 p2p

我一直在尝试开发一个使用Micosoft的Peer to Peer Group库的点对点应用程序。我的工作基于msdn上的Creating a Group Chat Application内容。这适用于本地组,如果我安装了第三方隧道适配器(如gogo6客户端),也适用于全局组。但是,从我读过的一些内容来看,似乎我应该能够通过内置于Windows中的Teredo隧道适配器来完成工作。

我尝试了各种各样的东西,现在可以在没有运行gogo6隧道的情况下访问仅限ipv6的网站(例如ipv6.google.com),但我似乎无法通过此方法找到我的全局组中的任何其他对等方。

我已经为Windows防火墙中的应用程序添加了允许流量(包括边缘遍历)的规则,并且还打开了以下端口到传入和传出的流量。

  • tcp 3587
  • udp 3540,1900

从我看过的样本看起来它应该只是起作用,但事实并非如此。我确实读过要在应用程序中使用teredo,你必须特别启用它。我发现这样做的唯一方法是打开套接字,但是组api为你做了所有这些,所以我没有办法控制它。

2 个答案:

答案 0 :(得分:0)

我认为Teredo不支持IPv6组播。如果Peer to Peer Group库使用多播,我认为这就是问题所在。我永远无法确认Teredo不支持多播;但是在我自己的测试中,当接口ID是Teredo接口时,setsockopt(ADD_GROUP_MEMBERSHIP)总是会失败。

答案 1 :(得分:0)

由于对称路由器问题,一些Teredo客户端无法访问。 Teredo只能在90%的路由器之后工作。 Gogo6使用TSP将数据包隧道传输到gogo6基础设施,从那里到达ipv6互联网。