C# 如何做港口转运?

C# 如何做港口转运?,c#,.net,port,nat,forwarding,C#,.net,Port,Nat,Forwarding,我正在尝试将端口转发到我的项目,以替换当前的udp打孔。原因是我希望客户端在没有服务器干预的情况下开始相互通信。 在.net中,我们可以使用natupnplib,但它似乎不能正常工作(例如,它在我家的wifi上不能工作)。Mono.Nat似乎也不是解决方案 我知道有一种方法可以做到这一点,因为uTorrent在我检查的每台pc上都进行端口映射。(我知道它可能无法在任何地方兼容,但我希望它能在uTorrent工作的设备中工作) 我在互联网上查找了用于端口转发的开源bittorents实现,但没有找

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

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

我在互联网上查找了用于端口转发的开源bittorents实现,但没有找到。 在.net环境下编写的解决方案将非常好。 那么,我该怎么做呢?:)

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

常见问题 有些库在wifi中无法正常工作有几个原因。首先,确保在NAT设备中启用了upnp。如果启用,那么您测试的库可能只支持IP路由(WANIPConnection),而不支持ADSL调制解调器(WANPPPPConnection)

Mono.Nat和家庭设备 官方的Mono.Nat仅适用于不支持WANPconnection(IP路由器)的设备,但是有许多设备(家庭设备)只允许WANPPPPC连接(ADSL调制解调器-这可能是您的情况)。但是,您可以使用一个更好的支架叉,它已经支持WANPPPC连接

建议 如果您使用.NET4.5,我建议(是的,它是由我开发的),它可以与家庭设备一起使用,比Mono.Nat更快、更新


祝你好运

我不知道,它是自动完成的。据了解,这是因为PnP:较新的路由器型号通常内置UPnP(通用即插即用)或NAT-PMP。这允许自动转发端口。。。我认为这将是搜索信息的一个良好开端。嗯