0

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

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

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

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

补充说明:

防火墙应用程序,如卡巴斯基、node、zonealarm 和 ...

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

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

4

2 回答 2

0

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

于 2012-05-31T20:02:57.830 回答
0

如果您可以绕过所有防火墙,那么拥有它们将毫无用处。即使他们禁用了软件防火墙,他们仍然可以让路由器充当防火墙并且不转发连接尝试。

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

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

于 2012-05-31T20:47:51.820 回答