Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从C转发端口#_C#_Udp_Port_Router - Fatal编程技术网

C# 从C转发端口#

C# 从C转发端口#,c#,udp,port,router,C#,Udp,Port,Router,我想用C语言编写一个程序,将一个特定的端口从路由器转发到计算机。这可能吗?不,不可能 端口转发是连接网络中所有其他计算机的网络设备的任务。一旦数据包离开路由器,它就无法控制它 此外,除非您从路由器转发端口,否则内部lan中的计算机无法获取该数据包,根本不存在转发问题。可以使用UPNP(假设您的设备支持该技术)使用NATUPnP 1.0类型库(NATUPnP.DLL)转发端口或者像这样的第三方库 如果您想在不使用UPNP的情况下执行此操作,那么将非常困难,因为您需要找到需要发送到设备(路由器)的消

我想用C语言编写一个程序,将一个特定的端口从路由器转发到计算机。这可能吗?不,不可能

端口转发是连接网络中所有其他计算机的网络设备的任务。一旦数据包离开路由器,它就无法控制它


此外,除非您从路由器转发端口,否则内部lan中的计算机无法获取该数据包,根本不存在转发问题。

可以使用
UPNP
(假设您的设备支持该技术)使用NATUPnP 1.0类型库(NATUPnP.DLL)转发端口或者像这样的第三方库

如果您想在不使用UPNP的情况下执行此操作,那么将非常困难,因为您需要找到需要发送到设备(路由器)的消息类型,以模拟用户添加端口

对于
Mono.Nat
,您可以在
对于
NATUPnP
,在有一个例子,这是可能的。您是否签出了uPnP?@Bart Friederichs uPnP不是端口转发,它是一种不同的技术。uPnP还支持端口转发请求。您好,感谢您的响应,我的项目需要通过端口通过UDP与特定计算机进行外部连接,因此用户必须手动启用端口转发到计算机。然而,我希望在程序中自动完成这项工作,这可能吗?@MurtuzaKabul关于端口转发不正确:关于支持,是的,这可能是一件事。检查UPnP:应该有C#UPnP库可用。感谢您的详细回复,事实上该应用程序类似于服务器(在网络a上),连接到CLIENT1(在网络B上),发送一个数据包并结束UDP。UPNP是否适用?是的,假设客户端设备支持UPNP(现在大多数设备都支持UPNP,但总有例外)。好吧,请允许我用这种方式提出我的问题,我的服务器将通过udp远程发送数据包,它是否将被客户端路由器阻止?如果是这样,我应该如何绕过它?如果客户端位于防火墙后面,那么它将被阻止是的。为了绕过它,您需要确保从服务器发送信息的端口在客户端机器上是打开的。另外,对于UDP,还有另一种称为“UDP打孔”的方法,如果您对第三种方法感兴趣,您可以在这里找到有关该方法的一些额外信息