【问题标题】:How to detect if windows7 is blocking my UDP server? How to request permission?如何检测 windows7 是否阻塞了我的 UDP 服务器?如何申请许可?
【发布时间】:2012-01-25 02:10:09
【问题描述】:

我的程序如何强制 windows7 防火墙让我通过,或引发错误?

我的 boost asio UDP 点对点代码正在运行。今天它行不通。我检查了防火墙,我的开发目录中的 a.exe 仍然被授权为私有和公共访问。

凭直觉,我将 a.exe 重命名为 a1.exe,运行它,windows 询问我是否要允许它使用网络。现在它再次起作用了!

我的猜测是windows7会记住a.exe上的校验和,当我编译新功能时它会阻止网络访问,但它忘记从授权列表中删除a.exe,所以它没有给我弹出请求.

对于开发,我每次都可以使用一个新名称,但是当它向 beta 测试人员推出时,这将是一场支持噩梦。

如何在我的代码中检查和/或请求授权?

【问题讨论】:

    标签: boost boost-asio windows-firewall


    【解决方案1】:

    Question 实际上完全独立于 boost 框架。

    嗯,似乎有不同的 API 可以控制 Windows 防火墙,具体取决于操作系统版本 (XP/Vista)。 这里有一些有用的代码示例资源:

    http://msdn.microsoft.com/en-us/library/aa364726%28v=VS.85%29.aspx

    http://www.vedivi.com/support/blog/72-configure-your-firewall-in-c.html

    也相关:

    Why can't my application receive UDP packets when the Windows Base Filtering Engine service is enabled?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-24
      • 1970-01-01
      • 1970-01-01
      • 2016-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多