如何进行端口转发?

时间:2014-04-04 11:18:27

标签: c# .net port nat forwarding

我试图将端口转发到我的项目,以取代当前的udp打孔。原因是因为我希望客户在没有服务器干预的情况下开始彼此通信。 在.net中我们可以使用natupnplib,但它似乎没有正常工作(例如,它不能在我家的wifi上工作)。 Mono.Nat似乎也不是解决方案。

我知道有办法做到这一点,因为uTorrent在我检查的每台电脑上都进行了端口映射。 (我知道它可能在任何地方都不兼容,但我希望它可以在uTorrent工作的设备中工作)

我已经通过互联网查看了开源bittorents实施端口转发,但尚未找到。 用.net环境编写的解决方案会很棒。 那么,我该怎么做? :)

1 个答案:

答案 0 :(得分:5)

关于端口转发

您可以使用UPNP和/或PMP(或其更新版本,PCP - 端口控制协议)在.NET项目中进行端口转发。目前,大多数可用设备都支持UPNP,即使在许多设备中默认禁用UPNP也是如此。

常见问题

有些库在你的wifi上无法正常工作有几个原因。首先,请确保已在NAT设备中启用upnp。如果它已启用,那么您测试的库可能仅支持IP路由(WANIPConnection),并且不支持ADSL调制解调器(WANPPPConnection)。

Mono.Nat和家庭设备

官方Mono.Nat仅适用于支持WANIPConnection(IP路由器)的设备,但有许多设备(家庭设备)只允许WANPPPConnection(ADSL调制解调器 - 这可能是您的情况)。但是,您可以使用已经支持WANPPPConnection的其中一个更好的mantained for。

建议

如果您使用的是.NET 4.5,我建议Open.NAT(是的,它是由我开发的),它适用于家用设备,比Mono.Nat更快更新。

祝你好运!