2

Windows 7 ファイアウォールを強制的に通過させたり、エラーを発生させたりするにはどうすればよいですか?

私のブースト asio UDP ピアツーピア コードは機能していました。今日はうまくいきません。ファイアウォールを確認したところ、開発ディレクトリ内の a.exe は、プライベートおよびパブリック アクセスに対してまだ承認されていました。

直感で、a.exe を a1.exe に名前を変更して実行すると、Windows からネットワークの使用を許可するかどうか尋ねられました。今、それは再び動作します!

私の推測では、windows7 は a.exe のチェックサムを記憶しており、新しい機能をコンパイルしたときにネットワーク アクセスがブロックされましたが、許可されたリストから a.exe を削除するのを忘れたため、ポップアップ リクエストは表示されませんでした。

開発では、毎回新しい名前を使用できますが、これがベータ テスターに​​展開されると、サポートの悪夢になります。

コード内で承認を確認および/または要求するにはどうすればよいですか?

4

1 に答える 1

0

質問は実際にはブーストフレームワークから完全に独立しています。

さて、OS のバージョン(XP/Vista)によって、Windows ファイアウォールを制御する API が異なるようです。ここに、コード例を含むいくつかの役立つリソースがあります。

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

また関連:

Windows Base Filtering Engine サービスが有効になっていると、アプリケーションが UDP パケットを受信できないのはなぜですか?

于 2012-07-26T13:12:19.407 に答える