接受来自防火墙后面的网络外部的连接

时间:2012-05-31 20:00:00

标签: c# networking tcp firewall tcplistener

目前,我已经使用TcpListener-TcpClient编写了一个应用程序(一种通信应用程序),用于将客户端连接到彼此和服务器。 (客户端应该能够相互连接并同时连接到服务器)。

问题是用户拥有的防火墙应用程序。他们的防火墙应用程序完全阻止来自网络外部的传入连接。

(我尝试使用带有CreateObject(“HNetCfg.FwMgr”)的vbscript中的Windows防火墙配置脚本解决此问题,但它不适用于防火墙应用程序!)

我该怎么办? 有没有解决方法,或者我们只需为每个防火墙编写手册!

附加说明:

防火墙应用程序,如kaspersky,node,zonealarm和......

TeamViewer就是一个很好的例子。他们是怎么做到的?

我们不希望客户端依赖于服务器。他们应该能够在不使用服务器的情况下相互连接。

2 个答案:

答案 0 :(得分:0)

您可以做的是从客户端测试互联网连接,然后尝试从外部联系您的服务器或任何其他客户端,如果没有回复,则询问或提示用户“您使用防火墙吗?大多数防火墙检测或通知“试图联系”服务器的应用程序的用户

答案 1 :(得分:0)

如果您可以绕过所有防火墙,那么它们就没用了。即使他们禁用了他们的软件防火墙,他们仍然可以使用路由器充当防火墙,而不是转发连接尝试。

如果您有专用服务器并允许客户端通过该服务器相互通信,那么防火墙应该不是问题,因为每个客户端都会启动到服务器的传出连接。

如果您希望客户端能够充当服务器,那么该人必须确保允许该应用程序通过其防火墙。另外,请查看UPnP以打开路由器上的端口。