gpt4 book ai didi

c# - 如何进行端口转发?

转载 作者:行者123 更新时间:2023-12-04 02:07:40 28 4
gpt4 key购买 nike

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

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

我已经在互联网上查看了用于端口转发的开源 bittorents 实现,但还没有找到。
在 .net 环境中编写的解决方案会很棒。
那么,我该怎么做呢? :)

最佳答案

关于端口转发

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

常见问题

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

Mono.Nat 和家庭设备

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

推荐

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

祝你好运!

关于c# - 如何进行端口转发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22861357/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com