ソケットを使用してローカル プロセス間で通信しています。これにより、OSX ファイアウォールに次のプロンプトが表示されます。
Do you want the application "Foo.app" to accept incoming network connections?
2 つの問題があります。
- ソケットはローカルでのみ使用されるため、プロンプトが表示されないことが理想的です。
- ダイアログが表示されてすぐに消えるため、ユーザーは「許可」または「拒否」をクリックする時間がありません。
コード:
new ServerSocket();
localhost または 127.0.0.1 を指定しても、プロンプトは妨げられないことに注意してください。
new ServerSocket(0, 0, InetAddress.getByName(null));