来自防火墙

时间:2017-10-09 02:44:15

标签: c# sockets tcp firewall tcp-ip

我认为大多数TCP / IP连接问题都会在网上处理exe文件。对于使用构建TCP / IP连接的外部动态链接库的情况,我找不到任何直接的答案。

我构建了一个简单的服务器和客户端应用程序,用于远程通信。它们是用c sharp dll编写的。

第三方exe将使用我的自定义动态链接库来调用我的dll库中的TCP / IP连接(外部DLL是从C Sharp编写的)用于服务器和客户端应用程序。

为了您的信息,我无权更改第三方exe文件中的任何内容,但只有我可以更改动态链接库中的任何内容。该DLL也只使用一个端口进行通信。

当我在公共网络上关闭防火墙时,一切正常。但是,只要我打开防火墙,就无法再建立连接。

  1. 我尝试创建入站规则以允许我的TCP / IP应用程序使用的防火墙中的特定端口。但是这种方法不起作用,尽管它应该有效。甚至我创建了出站规则以允许相同的端口。但它永远不会奏效。

  2. 我还尝试通过以编程方式在我的dll文件中的清单文件上设置此权限来授予管理员权限。但是再一次都没有发生。

  3.   

    requestedExecutionLevel level =" requireAdministrator" uiAccess ="假"

    1. 我用admin权限启动了主exe文件。但这也行不通。
    2. 因为dll文件正在调用TCP / IP连接,所以我无法在防火墙中设置dll文件的程序规则。我认为只有exe文件才能使用防火墙中的程序规则。

      所以我尝试构建等效的独立exe文件而不是我的dll文件。我为Program创建了新的入站规则,允许我的防火墙中的独立exe文件。一切都很完美。服务器exe和客户端exe应用程序都可以毫无问题地进行通信。

      事情会更简单地思考这种方式。如果防火墙已关闭,则tcp连接正常。这绝对是一些线索。

      1. 问题是如何在不干扰特定端口的tcp连接的情况下放回防火墙?

      2. 为什么我创建入站和出站规则以允许端口但从不起作用?

      3.   

        2017年10月10日更新:

             

        我已经改变了两台PC之间服务器和客户端的角色。 TCP   通过在防火墙中设置端口规则,连接工作正常。   现在我可以告诉问题是具体到哪一个测试   计算机,与dll或exe问题无关。

             

        在那个有问题的计算机中,端口规则或程序规则都没有   除了在播放服务器角色时关闭防火墙以外的工作。   防火墙后可以干扰其他任何东西吗?或端口转发   在这种情况下可以帮忙吗?仍在寻找好的解决方案。

0 个答案:

没有答案