如何检测windows7是否阻止我的UDP服务器?如何申请许可?

时间:2011-12-21 08:25:44

标签: boost boost-asio windows-firewall

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

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

在预感中,我将a.exe重命名为a1.exe,运行它,然后Windows询问我是否允许它使用网络。现在再次运作!

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

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

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

1 个答案:

答案 0 :(得分:0)

问题实际上完全独立于提升框架。

嗯,似乎有不同的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?