目前,我已经使用TcpListener-TcpClient编写了一个应用程序(一种通信应用程序),用于将客户端连接到彼此和服务器。 (客户端应该能够相互连接并同时连接到服务器)。
问题是用户拥有的防火墙应用程序。他们的防火墙应用程序完全阻止来自网络外部的传入连接。
(我尝试使用带有CreateObject(“HNetCfg.FwMgr”)的vbscript中的Windows防火墙配置脚本解决此问题,但它不适用于防火墙应用程序!)
我该怎么办? 有没有解决方法,或者我们只需为每个防火墙编写手册!
附加说明:
防火墙应用程序,如kaspersky,node,zonealarm和......
TeamViewer就是一个很好的例子。他们是怎么做到的?
我们不希望客户端依赖于服务器。他们应该能够在不使用服务器的情况下相互连接。
答案 0 :(得分:0)
您可以做的是从客户端测试互联网连接,然后尝试从外部联系您的服务器或任何其他客户端,如果没有回复,则询问或提示用户“您使用防火墙吗?大多数防火墙检测或通知“试图联系”服务器的应用程序的用户
答案 1 :(得分:0)
如果您可以绕过所有防火墙,那么它们就没用了。即使他们禁用了他们的软件防火墙,他们仍然可以使用路由器充当防火墙,而不是转发连接尝试。
如果您有专用服务器并允许客户端通过该服务器相互通信,那么防火墙应该不是问题,因为每个客户端都会启动到服务器的传出连接。
如果您希望客户端能够充当服务器,那么该人必须确保允许该应用程序通过其防火墙。另外,请查看UPnP以打开路由器上的端口。